Function at 0x5284c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xb0
mov edx, dword [esp + 0xb4]
push ebx
mov ebx, dword [esp + 0xbc]
push ebp
mov eax, dword [edx + 0x38]
imul ecx, ebx, 0x98
push esi
mov dword [esp + 0x98], eax
mov eax, dword [edx + 0x3c]
push edi
mov edi, dword [edx + 0x1c]
add ecx, 0xffffff68
add ecx, edi
mov dword [esp + 0x4c], eax
mov eax, dword [edx + 0x40]
mov dword [esp + 0x48], eax
mov eax, dword [edx + 0x44]
mov esi, dword [edi + 8]
mov ebp, dword [edi + 0xc]
sub esi, dword [edi]
sub ebp, dword [edi + 4]
mov dword [esp + 0x50], eax
mov eax, dword [ecx]
mov dword [esp + 0x54], edi
mov dword [esp + 0x78], ecx
cmp eax, dword [ecx + 8]
je 0x52859b
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 0xc]
je 0x52859b
push ebx
push edx
call fcn.0052b100
mov ebx, eax
add esp, 8
mov dword [esp + 0x28], ebx
test ebx, ebx
je 0x528d84
mov eax, dword [esp + 0xc8]
cmp eax, 1
jne 0x5285ab
mov ebp, dword [esp + 0x78]
push eax
mov edx, dword [ebp + 0x90]
mov eax, edx
mov edi, dword [ebp + 0x88]
sub eax, edi
sub edx, dword [ebp]
sub edi, dword [ebp]
push eax
mov eax, dword [esp + 0xcc]
push 1
push dword [eax + 0x34]
mov eax, dword [ebp + 0x94]
sub eax, dword [ebp + 4]
push eax
mov eax, dword [ebp + 0x8c]
sub eax, dword [ebp + 4]
push edx
push eax
push edi
push ebx
call fcn.0053fff0
push ebx
call fcn.0053ffa0
add esp, 0x28
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xb0
ret
push eax
push edi
call fcn.0052b400
add esp, 8
cmp eax, 0xfffffffa
ja 0x528d7b
add eax, 5
cmp eax, 0xfffffff
ja 0x528d7b
shl eax, 4
push eax
call fcn.0050bb50
add esp, 4
mov dword [esp + 0x7c], eax
test eax, eax
je 0x528d7b
mov edi, 1
mov dword [esp + 0xa0], eax
mov dword [esp + 0x60], edi
cmp dword [esp + 0xc8], edi
jbe 0x528d11
mov edx, dword [esp + 0x54]
mov ecx, ebp
add edx, 0x98
mov dword [esp + 0xa8], ebp
mov dword [esp + 0x2c], ebp
mov eax, esi
mov dword [esp + 0x68], ebp
mov dword [esp + 0x54], edx
mov ebp, dword [edx]
mov ebx, dword [edx + 8]
sub ebx, ebp
mov dword [esp + 0x84], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x64], esi
mov esi, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x38], ebx
sub edx, esi
sub ebx, eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x80], ebx
and ebp, 0x80000001
jns 0x528662
dec ebp
or ebp, 0xfffffffe
inc ebp
mov eax, edx
mov dword [esp + 0x6c], ebp
sub eax, ecx
mov dword [esp + 0x88], ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0xa4], eax
and esi, 0x80000001
jns 0x528689
dec esi
or esi, 0xfffffffe
inc esi
lea eax, [esp + 0x40]
mov dword [esp + 0x5c], esi
push eax
lea eax, [esp + 0x78]
mov dword [esp + 0xb0], esi
mov esi, dword [esp + 0xa0]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x7c]
push eax
push dword [esp + 0x60]
mov eax, dword [esp + 0xd8]
push dword [esp + 0x5c]
push dword [esp + 0x64]
push esi
push 0
push edi
push eax
call fcn.0052aec0
mov ecx, dword [esp + 0xf0]
add esp, 0x2c
test edi, edi
mov eax, 1
cmovne eax, edi
mov ebx, dword [ecx + 0x14]
mov ebp, ebx
sub ebp, eax
jne 0x5286f6
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], esi
jmp 0x5287a1
lea eax, [ebp - 1]
mov edx, 1
mov ecx, eax
mov dword [esp + 0x1c], eax
shl edx, cl
cmp esi, edx
ja 0x52870e
xor esi, esi
jmp 0x528740
mov eax, esi
xor edi, edi
sub eax, edx
xor esi, esi
xor edx, edx
mov ecx, ebp
bts esi, ecx
cmp ecx, 0x20
cmovae edi, esi
xor esi, edi
cmp ecx, 0x40
cmovae edi, esi
add eax, esi
adc edx, edi
add eax, 0xffffffff
adc edx, 0xffffffff
call fcn.005785b0
mov esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, eax
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x48]
mov edx, 1
shl edx, cl
cmp eax, edx
ja 0x528766
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x18], 0
jmp 0x5287a5
mov ecx, eax
xor edi, edi
sub ecx, edx
xor eax, eax
xor edx, edx
mov esi, ebp
bts edi, esi
cmp esi, 0x20
cmovae eax, edi
xor edi, eax
cmp esi, 0x40
cmovae eax, edi
add ecx, edi
adc edx, eax
add ecx, 0xffffffff
mov eax, ecx
mov ecx, ebp
adc edx, 0xffffffff
call fcn.005785b0
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x5287b3
mov ebx, dword [ecx + 0x14]
dec ebx
jmp 0x5287b5
sub ebx, eax
mov eax, dword [esp + 0x4c]
test ebx, ebx
jne 0x5287ce
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], esi
jmp 0x52885a
mov edx, 1
lea ecx, [ebx - 1]
shl edx, cl
cmp eax, edx
ja 0x5287e6
mov dword [esp + 0x14], 0
jmp 0x528814
sub eax, edx
xor esi, esi
xor edx, edx
xor edi, edi
mov ecx, ebx
bts esi, ecx
cmp ecx, 0x20
cmovae edi, esi
xor esi, edi
cmp ecx, 0x40
cmovae edi, esi
add eax, esi
adc edx, edi
add eax, 0xffffffff
adc edx, 0xffffffff
call fcn.005785b0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
lea ecx, [ebx - 1]
mov edx, 1
shl edx, cl
cmp eax, edx
ja 0x52882a
xor eax, eax
jmp 0x52885a
mov ecx, eax
xor edi, edi
sub ecx, edx
xor eax, eax
xor edx, edx
mov esi, ebx
bts edi, esi
cmp esi, 0x20
cmovae eax, edi
xor edi, eax
cmp esi, 0x40
cmovae eax, edi
add ecx, edi
adc edx, eax
add ecx, 0xffffffff
mov eax, ecx
mov ecx, ebx
adc edx, 0xffffffff
call fcn.005785b0
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x54]
mov esi, dword [eax + 0x40]
sub edx, esi
mov edi, dword [eax + 0x20]
mov ebx, dword [eax + 0x1c]
mov ebp, dword [eax + 0x44]
xor eax, eax
cmp dword [esp + 0x70], esi
cmovae eax, edx
sub ecx, edi
xor edx, edx
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x3c], edi
cmovae edx, ecx
mov ecx, dword [esp + 0x74]
sub ecx, esi
mov dword [esp + 0x3c], edx
xor edx, edx
cmp dword [esp + 0x74], esi
cmovae edx, ecx
mov ecx, dword [esp + 0x40]
sub ecx, edi
xor esi, esi
cmp dword [esp + 0x40], edi
mov edi, dword [esp + 0x10]
cmovae esi, ecx
xor ecx, ecx
sub edi, ebx
mov dword [esp + 0x40], esi
cmp dword [esp + 0x10], ebx
mov esi, dword [esp + 0x18]
cmovb edi, ecx
sub esi, ebx
cmp dword [esp + 0x18], ebx
cmovb esi, ecx
mov ecx, dword [esp + 0x14]
sub ecx, ebp
xor ebx, ebx
cmp dword [esp + 0x14], ebp
cmovb ecx, ebx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
sub ecx, ebp
cmp dword [esp + 0x20], ebp
cmovb ecx, ebx
mov dword [esp + 0x10], ecx
mov ecx, eax
cmp ecx, 4
jb 0x528902
add ecx, 0xfffffffc
jmp 0x528904
xor ecx, ecx
xor eax, eax
mov ebx, dword [esp + 0x3c]
add edx, 4
mov dword [esp + 0x44], ecx
mov dword [esp + 0x70], ecx
adc eax, eax
neg eax
or eax, edx
mov edx, dword [esp + 0x30]
cmp eax, dword [esp + 0x64]
cmovb edx, eax
lea eax, [edi - 4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x74], edx
xor edx, edx
cmp edi, 4
cmovb eax, edx
mov dword [esp + 0x1c], eax
xor eax, eax
add esi, 4
adc eax, eax
neg eax
or eax, esi
mov esi, dword [esp + 0x58]
cmp eax, esi
cmovb esi, eax
mov dword [esp + 0x58], esi
cmp ebx, 4
jb 0x52895f
add ebx, 0xfffffffc
jmp 0x528961
xor ebx, ebx
mov edx, dword [esp + 0x40]
xor eax, eax
add edx, 4
mov dword [esp + 0x18], ebx
mov dword [esp + 0x3c], ebx
adc eax, eax
neg eax
or eax, edx
mov edx, dword [esp + 0x2c]
cmp eax, dword [esp + 0x68]
cmovb edx, eax
mov eax, dword [esp + 0x14]
xor ebp, ebp
mov dword [esp + 0x2c], edx
cmp eax, 4
mov dword [esp + 0x40], edx
lea edi, [eax - 4]
cmovb edi, ebp
mov ebp, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x20], edi
add ebp, 4
adc eax, eax
neg eax
or eax, ebp
mov ebp, dword [esp + 0x24]
cmp eax, ebp
cmovb ebp, eax
mov eax, dword [esp + 0x1c]
add esi, esi
mov dword [esp + 0x24], ebp
add eax, eax
mov dword [esp + 0x14], esi
add ecx, ecx
cmp dword [esp + 0x6c], 0
jne 0x5289fa
mov edx, dword [esp + 0x38]
lea esi, [eax + 1]
mov eax, dword [esp + 0x30]
cmp ecx, esi
cmovb esi, ecx
mov ecx, dword [esp + 0x14]
inc ecx
add eax, eax
cmp eax, ecx
cmova ecx, eax
cmp ecx, edx
cmovb edx, ecx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x2c]
jmp 0x528a23
lea esi, [ecx + 1]
mov ecx, dword [esp + 0x38]
cmp eax, esi
cmovb esi, eax
mov eax, dword [esp + 0x30]
lea eax, [eax*2 + 1]
cmp dword [esp + 0x14], eax
cmova eax, dword [esp + 0x14]
cmp eax, ecx
cmovb ecx, eax
mov dword [esp + 0x10], ecx
add ebp, ebp
lea ecx, [edi + edi]
cmp dword [esp + 0x5c], 0
lea eax, [ebx + ebx]
lea edi, [edx + edx]
jne 0x528a49
inc ecx
cmp eax, ecx
cmovb ecx, eax
lea eax, [ebp + 1]
cmp edi, eax
mov dword [esp + 0x14], ecx
cmova eax, edi
jmp 0x528a5b
inc eax
cmp ecx, eax
cmovb eax, ecx
mov dword [esp + 0x14], eax
lea eax, [edi + 1]
cmp ebp, eax
cmova eax, ebp
mov ebp, dword [esp + 0x34]
cmp eax, ebp
mov ecx, ebp
cmovb ecx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x8c], eax
xor edi, edi
mov eax, dword [esp + 0x30]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x98], eax
cmp ebp, 3
jbe 0x528b3b
lea ecx, [edi + 3]
cmp ecx, ebx
jb 0x528aac
cmp edi, edx
jb 0x528ac7
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0xa8]
add eax, edx
cmp ecx, eax
jb 0x528b29
mov eax, dword [esp + 0x24]
add eax, edx
cmp edi, eax
jae 0x528b29
mov ebx, dword [esp + 0x28]
mov eax, ebp
sub eax, edi
mov ecx, 4
cmp eax, 4
cmova eax, ecx
push eax
push edi
lea eax, [esp + 0x84]
push ebx
push eax
call fcn.0052c940
lea eax, [esp + 0x8c]
push eax
call fcn.0052c500
push 1
push 1
push 4
mov eax, esi
shl eax, 4
add eax, dword [esp + 0x9c]
push eax
lea eax, [edi + 4]
push eax
push dword [esp + 0x38]
push edi
push esi
push ebx
call fcn.00540770
add esp, 0x38
test eax, eax
je 0x528bb8
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
add edi, 4
lea eax, [edi + 3]
cmp eax, ebp
jb 0x528aa1
cmp edi, ebp
jae 0x528bda
lea eax, [edi + 3]
cmp eax, ebx
jb 0x528b4e
cmp edi, edx
jb 0x528b6c
mov eax, dword [esp + 0x20]
lea edx, [edi + 3]
mov ecx, dword [esp + 0xa8]
add eax, ecx
cmp edx, eax
jb 0x528bda
mov eax, dword [esp + 0x24]
add eax, ecx
cmp edi, eax
jae 0x528bda
mov ebx, dword [esp + 0x28]
mov eax, ebp
sub eax, edi
push eax
push edi
lea eax, [esp + 0x84]
push ebx
push eax
call fcn.0052c940
lea eax, [esp + 0x8c]
push eax
call fcn.0052c500
push 1
push 1
push 4
mov eax, esi
shl eax, 4
add eax, dword [esp + 0x9c]
push eax
push ebp
push dword [esp + 0x38]
push edi
push esi
push ebx
call fcn.00540770
add esp, 0x38
test eax, eax
jne 0x528bde
push ebx
call fcn.0053ffa0
push dword [esp + 0x80]
call fcn.0050bb30
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], eax
cmp esi, ecx
jae 0x528cf6
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x24]
lea eax, [eax + edx*2]
shl eax, 4
add eax, dword [esp + 0x7c]
mov dword [esp + 0x6c], eax
lea eax, [edi + edi]
sub eax, dword [esp + 0x5c]
inc eax
shl eax, 4
add eax, dword [esp + 0x7c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xa8]
add ebx, eax
add eax, edi
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
shl eax, 4
add eax, dword [esp + 0x7c]
mov dword [esp + 0x44], eax
push 1
mov eax, ecx
mov ecx, 4
push 8
sub eax, esi
push 1
push dword [esp + 0x78]
cmp eax, 4
push dword [esp + 0x3c]
cmova eax, ecx
lea edi, [eax + esi]
push edi
push edx
push esi
push ebx
call fcn.0053fff0
push 1
push 8
push 1
push dword [esp + 0x98]
push dword [esp + 0x98]
push edi
push dword [esp + 0x58]
push esi
push ebx
call fcn.0053fff0
add esp, 0x48
lea eax, [esp + 0xa0]
push eax
call fcn.0052c500
push 1
push 4
push 1
push dword [esp + 0x54]
push dword [esp + 0x48]
push edi
push dword [esp + 0x30]
push esi
push ebx
call fcn.00540770
add esp, 0x28
test eax, eax
je 0x528bb8
mov ecx, dword [esp + 0x10]
add esi, 4
mov edx, dword [esp + 0x18]
cmp esi, ecx
jb 0x528c65
mov edi, dword [esp + 0x60]
inc edi
mov dword [esp + 0x60], edi
cmp edi, dword [esp + 0xc8]
jae 0x528d11
mov esi, dword [esp + 0x38]
jmp 0x528601
mov ebp, dword [esp + 0x78]
push 1
mov edx, dword [ebp + 0x90]
mov eax, edx
mov edi, dword [ebp + 0x88]
sub eax, edi
sub edx, dword [ebp]
sub edi, dword [ebp]
push eax
mov eax, dword [esp + 0xcc]
push 1
push dword [eax + 0x34]
mov eax, dword [ebp + 0x94]
sub eax, dword [ebp + 4]
push eax
mov eax, dword [ebp + 0x8c]
sub eax, dword [ebp + 4]
push edx
push eax
push edi
push ebx
call fcn.0053fff0
push ebx
call fcn.0053ffa0
push dword [esp + 0xa4]
call fcn.0050bb30
add esp, 0x2c
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret
push ebx
call fcn.0053ffa0
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xb0
ret