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

Disassembly:
sub esp, 0x88
mov edx, dword [esp + 0x8c]
push ebx
mov ebx, dword [esp + 0x94]
imul ecx, ebx, 0x98
mov eax, dword [edx + 0x38]
push ebp
mov dword [esp + 0x8c], eax
mov eax, dword [edx + 0x3c]
push esi
mov esi, dword [edx + 0x1c]
add ecx, 0xffffff68
add ecx, esi
mov dword [esp + 0x5c], eax
mov eax, dword [edx + 0x40]
push edi
mov edi, dword [esi + 8]
mov ebp, dword [esi + 0xc]
sub edi, dword [esi]
sub ebp, dword [esi + 4]
mov dword [esp + 0x8c], eax
mov eax, dword [edx + 0x44]
mov dword [esp + 0x64], eax
mov eax, dword [ecx]
mov dword [esp + 0x68], esi
mov dword [esp + 0x84], ecx
cmp eax, dword [ecx + 8]
je 0x528e84
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 0xc]
je 0x528e84
push ebx
push edx
call fcn.0052b100
mov ebx, eax
add esp, 8
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x52966e
mov eax, dword [esp + 0xa0]
cmp eax, 1
jne 0x528e94
mov ebp, dword [esp + 0x84]
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 + 0xa4]
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, 0x88
ret
push eax
push esi
call fcn.0052b400
add esp, 8
cmp eax, 0xfffffff
ja 0x529665
shl eax, 4
push eax
call fcn.0050baa0
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
je 0x529665
cmp dword [esp + 0xa0], 1
mov dword [esp + 0x44], 1
jbe 0x5295fe
nop dword [eax]
mov esi, dword [esp + 0x68]
mov eax, edi
add esi, 0x98
mov dword [esp + 0x54], edi
mov dword [esp + 0x2c], edi
mov ecx, ebp
mov dword [esp + 0x28], edi
mov dword [esp + 0x68], esi
mov ebx, dword [esi]
mov edi, dword [esi + 8]
mov edx, dword [esi + 0xc]
sub edi, ebx
mov dword [esp + 0x74], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x3c], ebp
mov ebp, dword [esi + 4]
sub edx, ebp
mov esi, edi
mov dword [esp + 0x48], edi
sub esi, eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x58], esi
and ebx, 0x80000001
jns 0x528f36
dec ebx
or ebx, 0xfffffffe
inc ebx
mov eax, edx
mov dword [esp + 0x40], ebx
sub eax, ecx
mov dword [esp + 0x5c], eax
and ebp, 0x80000001
jns 0x528f4f
dec ebp
or ebp, 0xfffffffe
inc ebp
mov edi, dword [esp + 0x8c]
lea eax, [esp + 0x50]
push eax
mov esi, dword [esp + 0x98]
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x54]
mov dword [esp + 0x78], ebp
mov ebp, dword [esp + 0x4c]
push eax
lea eax, [esp + 0x9c]
push eax
push dword [esp + 0x74]
mov eax, dword [esp + 0xb0]
push edi
push dword [esp + 0x78]
push esi
push 0
push ebp
push eax
call fcn.0052aec0
mov ecx, dword [esp + 0xc8]
add esp, 0x2c
test ebp, ebp
mov eax, 1
cmovne eax, ebp
mov ebx, dword [ecx + 0x14]
mov ebp, ebx
sub ebp, eax
jne 0x528fc3
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], edi
jmp 0x52906e
lea eax, [ebp - 1]
mov edx, 1
mov ecx, eax
mov dword [esp + 0x34], eax
shl edx, cl
cmp esi, edx
ja 0x528fdb
xor esi, esi
jmp 0x529014
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 edi, dword [esp + 0x8c]
mov esi, eax
mov eax, dword [esp + 0x34]
mov edx, 1
mov dword [esp + 0x10], esi
mov ecx, eax
shl edx, cl
cmp edi, edx
ja 0x52902f
mov dword [esp + 0x20], 0
jmp 0x529067
xor eax, eax
mov ecx, edi
sub ecx, edx
xor edi, edi
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 dword [esp + 0x20], eax
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x52907c
mov ebx, dword [ecx + 0x14]
dec ebx
jmp 0x52907e
sub ebx, eax
mov eax, dword [esp + 0x60]
test ebx, ebx
jne 0x529097
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x10], esi
jmp 0x529123
mov edx, 1
lea ecx, [ebx - 1]
shl edx, cl
cmp eax, edx
ja 0x5290af
mov dword [esp + 0x18], 0
jmp 0x5290dd
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 + 0x18], eax
mov eax, dword [esp + 0x64]
lea ecx, [ebx - 1]
mov edx, 1
shl edx, cl
cmp eax, edx
ja 0x5290f3
xor eax, eax
jmp 0x529123
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 + 0x90]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x68]
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 + 0x90], esi
cmovae eax, edx
sub ecx, edi
xor edx, edx
mov dword [esp + 0x34], eax
cmp dword [esp + 0x4c], edi
cmovae edx, ecx
mov ecx, dword [esp + 0x88]
sub ecx, esi
mov dword [esp + 0x4c], edx
xor edx, edx
cmp dword [esp + 0x88], esi
cmovae edx, ecx
mov ecx, dword [esp + 0x50]
sub ecx, edi
xor esi, esi
cmp dword [esp + 0x50], edi
cmovae esi, ecx
xor ecx, ecx
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x10]
sub esi, ebx
cmp dword [esp + 0x10], ebx
cmovb esi, ecx
mov ecx, dword [esp + 0x20]
sub ecx, ebx
xor edi, edi
cmp dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x18]
cmovb ecx, edi
sub ebx, ebp
cmp dword [esp + 0x18], ebp
cmovb ebx, edi
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x24]
sub ebx, ebp
cmp dword [esp + 0x24], ebp
cmovb ebx, edi
mov edi, eax
cmp edi, 2
jb 0x5291d3
add edi, 0xfffffffe
jmp 0x5291d5
xor edi, edi
xor eax, eax
mov dword [esp + 0x6c], edi
add edx, 2
mov dword [esp + 0x90], edi
lea ebp, [esi - 2]
adc eax, eax
neg eax
or eax, edx
mov edx, dword [esp + 0x2c]
cmp eax, dword [esp + 0x28]
cmovb edx, eax
xor eax, eax
cmp esi, 2
mov dword [esp + 0x2c], edx
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x4c]
cmovb ebp, eax
add ecx, 2
mov dword [esp + 0x34], ebp
adc eax, eax
neg eax
or eax, ecx
mov ecx, dword [esp + 0x58]
cmp eax, ecx
cmovb ecx, eax
mov dword [esp + 0x24], ecx
cmp edx, 2
jb 0x529234
add edx, 0xfffffffe
jmp 0x529236
xor edx, edx
mov ecx, dword [esp + 0x50]
xor eax, eax
add ecx, 2
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], edx
adc eax, eax
mov dword [esp + 0x4c], edx
neg eax
or eax, ecx
mov ecx, dword [esp + 0x30]
cmp eax, dword [esp + 0x3c]
cmovb ecx, eax
mov eax, dword [esp + 0x18]
cmp eax, 2
mov dword [esp + 0x30], ecx
mov dword [esp + 0x50], ecx
lea esi, [eax - 2]
cmovb esi, dword [esp + 0x28]
xor eax, eax
add ebx, 2
mov dword [esp + 0x3c], esi
adc eax, eax
neg eax
or eax, ebx
mov ebx, dword [esp + 0x5c]
cmp eax, ebx
cmovb ebx, eax
lea eax, [ebp*2]
mov ebp, dword [esp + 0x24]
add edi, edi
add ebp, ebp
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x40], 0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], edi
jne 0x5292d8
lea ebx, [eax + 1]
mov eax, dword [esp + 0x2c]
cmp edi, ebx
lea ecx, [ebp + 1]
cmovb ebx, edi
mov edi, dword [esp + 0x48]
add eax, eax
mov ebp, edi
cmp eax, ecx
cmova ecx, eax
cmp ecx, edi
cmovb ebp, ecx
mov ecx, dword [esp + 0x30]
jmp 0x5292fb
lea ebx, [edi + 1]
mov edi, dword [esp + 0x48]
cmp eax, ebx
cmovb ebx, eax
mov eax, dword [esp + 0x2c]
lea eax, [eax*2 + 1]
cmp ebp, eax
cmova eax, ebp
mov ebp, edi
cmp eax, edi
cmovb ebp, eax
mov eax, dword [esp + 0x18]
add esi, esi
add eax, eax
mov dword [esp + 0x80], esi
cmp dword [esp + 0x70], 0
mov dword [esp + 0x10], eax
jne 0x529333
lea eax, [esi + 1]
lea esi, [edx + edx]
cmp esi, eax
cmovb eax, esi
lea esi, [ecx + ecx]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
inc eax
cmp esi, eax
cmova eax, esi
jmp 0x529353
lea eax, [edx*2 + 1]
cmp esi, eax
cmovb eax, esi
mov dword [esp + 0x28], eax
lea eax, [ecx*2 + 1]
cmp dword [esp + 0x10], eax
cmova eax, dword [esp + 0x10]
mov esi, dword [esp + 0x38]
cmp eax, esi
mov dword [esp + 0x10], esi
cmovb esi, eax
mov dword [esp + 0x10], esi
xor esi, esi
cmp dword [esp + 0x38], esi
jbe 0x5294a3
cmp esi, edx
jb 0x529378
cmp esi, ecx
jb 0x529398
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x74]
add eax, ecx
cmp esi, eax
jb 0x529490
mov eax, dword [esp + 0x18]
add eax, ecx
cmp esi, eax
jae 0x529490
cmp ebp, 1
jb 0x5293b6
cmp ebp, edi
jae 0x5293cc
mov eax, dword [esp + 0x14]
lea ecx, [ebp*4]
mov dword [eax + ecx - 4], 0
jmp 0x5293c5
lea ecx, [ebp*4]
cmp ebp, edi
jae 0x5293cc
mov eax, dword [esp + 0x14]
mov dword [ecx + eax], 0
mov eax, dword [esp + 0x40]
lea edi, [esi + 1]
add eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x14]
push 1
push 0
push 2
lea eax, [ecx + eax*4]
push eax
push edi
push dword [esp + 0x40]
push esi
push dword [esp + 0x88]
push dword [esp + 0x3c]
call fcn.0053fff0
mov eax, dword [esp + 0xa0]
sub eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x38]
push 1
push 0
add ecx, 4
push 2
lea eax, [ecx + eax*4]
push eax
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0x88]
push edi
push eax
mov eax, dword [esp + 0x70]
add eax, dword [esp + 0x90]
push esi
push eax
push dword [esp + 0x60]
call fcn.0053fff0
mov edx, dword [esp + 0x9c]
add esp, 0x48
push dword [esp + 0x24]
push dword [esp + 0x38]
push dword [esp + 0x34]
push dword [esp + 0x78]
push dword [esp + 0x50]
push edx
push dword [esp + 0x70]
push dword [esp + 0x30]
call fcn.00527d50
mov eax, dword [esp + 0x34]
push 1
push 0
push 1
lea eax, [eax + ebx*4]
push eax
push edi
push ebp
push esi
push ebx
push dword [esp + 0x5c]
call fcn.00540770
add esp, 0x44
test eax, eax
je 0x5295d7
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x48]
inc esi
mov ecx, dword [esp + 0x30]
cmp esi, dword [esp + 0x38]
jb 0x529370
cmp ebx, ebp
jae 0x5295b4
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x14]
lea eax, [esi + edx*2]
shl eax, 4
add eax, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x80]
sub eax, esi
mov esi, dword [esp + 0x18]
inc eax
shl eax, 4
add eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x74]
add esi, eax
add eax, dword [esp + 0x3c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x28]
shl eax, 4
add eax, ecx
mov dword [esp + 0x78], esi
mov dword [esp + 0x54], eax
push 1
push 8
mov esi, ebp
mov eax, 4
sub esi, ebx
push 1
push dword [esp + 0x88]
cmp esi, 4
push dword [esp + 0x40]
cmova esi, eax
lea edi, [esi + ebx]
push edi
push edx
push ebx
push dword [esp + 0x3c]
call fcn.0053fff0
push 1
push 8
push 1
push dword [esp + 0xb0]
push dword [esp + 0xac]
push edi
push dword [esp + 0x94]
push ebx
push dword [esp + 0x60]
call fcn.0053fff0
add esp, 0x48
push dword [esp + 0x18]
push dword [esp + 0x40]
push dword [esp + 0x38]
push dword [esp + 0x2c]
push dword [esp + 0x80]
push dword [esp + 0x88]
push dword [esp + 0x74]
push esi
mov esi, dword [esp + 0x34]
push esi
call fcn.00527f90
push 1
push 4
push 1
push dword [esp + 0x84]
push dword [esp + 0x44]
push edi
push dword [esp + 0x64]
push ebx
push dword [esp + 0x60]
call fcn.00540770
add esp, 0x48
test eax, eax
je 0x5295db
mov edx, dword [esp + 0x20]
mov ebx, edi
cmp ebx, ebp
jb 0x5294f8
jmp 0x5295b8
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0xa0]
jae 0x5295fa
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x38]
jmp 0x528ee0
mov esi, dword [esp + 0x14]
push dword [esp + 0x1c]
call fcn.0053ffa0
push esi
call fcn.0050bb30
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
mov ebx, dword [esp + 0x1c]
push esi
call fcn.0050bb30
mov ebp, dword [esp + 0x88]
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 + 0xa8]
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, 0x2c
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
push ebx
call fcn.0053ffa0
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x88
ret