Function at 0x5245b0
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 0x524694
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 0xc]
je 0x524694
push ebx
push edx
call fcn.00526910
mov ebx, eax
add esp, 8
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x524e7e
mov eax, dword [esp + 0xa0]
cmp eax, 1
jne 0x5246a4
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.0053b800
push ebx
call fcn.0053b7b0
add esp, 0x28
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x88
ret
push eax
push esi
call fcn.00526c10
add esp, 8
cmp eax, 0xfffffff
ja 0x524e75
shl eax, 4
push eax
call fcn.005072b0
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
je 0x524e75
cmp dword [esp + 0xa0], 1
mov dword [esp + 0x44], 1
jbe 0x524e0e
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 0x524746
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 0x52475f
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.005266d0
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 0x5247d3
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], edi
jmp 0x52487e
lea eax, [ebp - 1]
mov edx, 1
mov ecx, eax
mov dword [esp + 0x34], eax
shl edx, cl
cmp esi, edx
ja 0x5247eb
xor esi, esi
jmp 0x524824
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.00573dc0
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 0x52483f
mov dword [esp + 0x20], 0
jmp 0x524877
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.00573dc0
mov esi, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x52488c
mov ebx, dword [ecx + 0x14]
dec ebx
jmp 0x52488e
sub ebx, eax
mov eax, dword [esp + 0x60]
test ebx, ebx
jne 0x5248a7
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x10], esi
jmp 0x524933
mov edx, 1
lea ecx, [ebx - 1]
shl edx, cl
cmp eax, edx
ja 0x5248bf
mov dword [esp + 0x18], 0
jmp 0x5248ed
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.00573dc0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x64]
lea ecx, [ebx - 1]
mov edx, 1
shl edx, cl
cmp eax, edx
ja 0x524903
xor eax, eax
jmp 0x524933
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.00573dc0
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 0x5249e3
add edi, 0xfffffffe
jmp 0x5249e5
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 0x524a44
add edx, 0xfffffffe
jmp 0x524a46
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 0x524ae8
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 0x524b0b
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 0x524b43
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 0x524b63
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 0x524cb3
cmp esi, edx
jb 0x524b88
cmp esi, ecx
jb 0x524ba8
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x74]
add eax, ecx
cmp esi, eax
jb 0x524ca0
mov eax, dword [esp + 0x18]
add eax, ecx
cmp esi, eax
jae 0x524ca0
cmp ebp, 1
jb 0x524bc6
cmp ebp, edi
jae 0x524bdc
mov eax, dword [esp + 0x14]
lea ecx, [ebp*4]
mov dword [eax + ecx - 4], 0
jmp 0x524bd5
lea ecx, [ebp*4]
cmp ebp, edi
jae 0x524bdc
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.0053b800
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.0053b800
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.00523560
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.0053bf80
add esp, 0x44
test eax, eax
je 0x524de7
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x48]
inc esi
mov ecx, dword [esp + 0x30]
cmp esi, dword [esp + 0x38]
jb 0x524b80
cmp ebx, ebp
jae 0x524dc4
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.0053b800
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.0053b800
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.005237a0
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.0053bf80
add esp, 0x48
test eax, eax
je 0x524deb
mov edx, dword [esp + 0x20]
mov ebx, edi
cmp ebx, ebp
jb 0x524d08
jmp 0x524dc8
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0xa0]
jae 0x524e0a
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x38]
jmp 0x5246f0
mov esi, dword [esp + 0x14]
push dword [esp + 0x1c]
call fcn.0053b7b0
push esi
call fcn.00507340
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.00507340
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.0053b800
push ebx
call fcn.0053b7b0
add esp, 0x2c
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
push ebx
call fcn.0053b7b0
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x88
ret