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

Disassembly:
sub esp, 0xfc
push esi
mov esi, ecx
mov al, byte [esi + 0x53]
test al, al
je 0x52477f
push edi
mov edi, dword [esi + 0x30]
call fcn.004cf280
cmp edi, dword [eax + 0x30]
jne 0x52477e
mov eax, dword [esi + 0x60]
mov edx, dword [0x8927a4]
mov edi, dword [esi + 0x5c]
push ebx
push ebp
mov ebp, eax
mov dword [esp + 0x18], eax
mov eax, dword [edx + 0x244d0]
inc eax
mov ecx, edi
push eax
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0x90]
push 0x594708
push ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x54], ebp
call fcn.0055e68c
push 0x4a49
lea edx, [esp + 0x9c]
push edx
lea esi, [ebp + 7]
lea ebx, [edi + 0x25]
push esi
push ebx
call fcn.0053ef40
push 0xffff
lea eax, [esp + 0xac]
push eax
push esi
push ebx
call fcn.0053ee90
call fcn.0053eab0
push 0x14
push 0x1f4
push 7
push 0x3c
call fcn.0053bfc0
mov ecx, dword [0x8927a4]
push 0x4a49
add ecx, 0x244d4
push ecx
lea ebx, [edi + 0x3c]
push esi
push ebx
call fcn.0053ef40
mov edx, dword [0x8927a4]
add esp, 0x4c
push 0xffff
add edx, 0x244d4
push edx
push esi
push ebx
call fcn.0053ee90
add esp, 0x10
call fcn.0053eae0
mov eax, dword [0x8927a4]
test eax, eax
je 0x524100
push 1
push 0x26a
push eax
call fcn.00431e20
mov eax, dword [0x8927a4]
mov dl, byte [eax + 0x24569]
mov ecx, 1
cmp dl, cl
jne 0x524116
mov byte [eax + 0x24568], 0
mov dl, byte [0x892d7e]
test dl, dl
je 0x52435f
mov eax, dword [0x8926bc]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x52413f
push ecx
mov esi, 0x597f3c
call fcn.00414740
add esp, 4
push 0
push 0x5f0a44
push 0x5ef1b8
push 0
call fcn.004cf280
mov ebx, 0x5b
mov edi, eax
call fcn.004032b0
push eax
call fcn.0055ffd5
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x52417c
push 1
mov esi, 0x597f3c
call fcn.00414740
add esp, 4
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x5c], 2
jle 0x5242a9
mov eax, dword [0x894de0]
inc eax
xor ebp, ebp
xor ebx, ebx
mov dword [0x894de0], eax
add edi, 0xb0
nop
mov eax, dword [0x8927a4]
mov cl, byte [eax + ebp + 0x247ce]
test cl, cl
je 0x524292
mov al, byte [eax + ebp + 0x247c6]
cmp al, 0xff
je 0x524292
xor ecx, ecx
test al, al
mov eax, dword [0x894de0]
setne cl
cdq
add ecx, 0xb
mov esi, ecx
mov ecx, 0x50
idiv ecx
cmp edx, 0x32
jle 0x5241fa
mov ecx, dword [0x8927a4]
add ecx, 0x1aa2c
call fcn.004086e0
cmp eax, ebp
je 0x524292
mov edx, dword [edi]
mov eax, dword [edi - 0x20]
push 0
push edx
push eax
push esi
push 0x900b9
call fcn.0053eff0
mov ecx, dword [0x8927a4]
lea edx, [ebx + ecx + 0x245f1]
push 0xffffffffffffffff
push edx
call fcn.0053c080
mov esi, dword [edi - 0x20]
cdq
sub eax, edx
sar eax, 1
sub esi, eax
mov eax, dword [0x8927a4]
mov cl, byte [eax + ebp + 0x247c6]
neg cl
lea edx, [ebx + eax + 0x245f1]
mov eax, dword [edi]
sbb ecx, ecx
and ecx, 0xffffc848
add ecx, 0x7225
push ecx
push edx
sub eax, 0x14
push eax
push esi
call fcn.0053ef40
mov eax, dword [0x8927a4]
mov cl, byte [eax + ebp + 0x247c6]
neg cl
lea edx, [ebx + eax + 0x245f1]
mov eax, dword [edi]
sbb ecx, ecx
and ecx, 0xffffc190
add ecx, 0xfced
push ecx
push edx
sub eax, 0x14
push eax
push esi
call fcn.0053ee90
add esp, 0x3c
add ebx, 0x14
inc ebp
add edi, 4
cmp ebx, 0xa0
jl 0x5241a0
mov ebp, dword [esp + 0x48]
mov eax, dword [0x892d78]
mov ebx, 1
cmp eax, ebx
jne 0x52430c
mov edx, dword [0x8927a4]
mov eax, dword [edx + 0x2459c]
lea ecx, [esp + 0x34]
push ecx
push eax
call fcn.004cee70
mov esi, eax
call fcn.00403230
mov edx, dword [esp + 0x14]
mov eax, dword [0x8927a4]
push 0
lea ecx, [ebp + 0x39]
push ecx
movsx ecx, byte [eax + 0x24568]
add edx, 0x11
push edx
mov edx, dword [esp + 0x40]
imul edx, edx, 0xb
add ecx, edx
push ecx
push 0x900b1
call fcn.0053eff0
mov edi, dword [esp + 0x28]
jmp 0x52439c
mov ecx, dword [0x8927a4]
mov edx, dword [ecx + 0x2459c]
lea eax, [esp + 0x34]
push eax
push edx
call fcn.004cee70
mov esi, eax
call fcn.00403230
mov ecx, dword [esp + 0x14]
mov edx, dword [0x8927a4]
push 0
lea eax, [ebp + 0x39]
push eax
movsx eax, byte [edx + 0x24568]
add ecx, 0xa
push ecx
mov ecx, dword [esp + 0x40]
imul ecx, ecx, 0xb
add eax, ecx
push eax
push 0x900b1
call fcn.0053eff0
mov edi, dword [esp + 0x28]
jmp 0x52439c
cmp dword [0x892d78], ecx
push 0
lea edx, [ebp + 0x39]
push edx
lea ecx, [edi + 0x11]
je 0x524373
lea ecx, [edi + 0xa]
push ecx
lea ecx, [eax + 0x24598]
call fcn.004086e0
imul eax, eax, 0xb
mov edx, dword [0x8927a4]
movsx ecx, byte [edx + 0x24568]
add eax, ecx
push eax
push 0x900b1
call fcn.0053eff0
mov eax, dword [0x892d78]
add esp, 0x14
cmp eax, 1
mov dword [esp + 0x54], 0x16
mov dword [esp + 0x58], 0x2b
mov dword [esp + 0x5c], 0x43
mov dword [esp + 0x60], 0x59
mov dword [esp + 0x64], 0x6e
mov dword [esp + 0x68], 0x84
mov dword [esp + 0x6c], 0x9e
mov dword [esp + 0x70], 0xb6
mov dword [esp + 0x74], 0xcc
mov dword [esp + 0x78], 0xe3
jne 0x5244bc
xor esi, esi
mov dword [esp + 0x10], esi
mov eax, dword [0x8927a4]
mov edi, dword [esp + esi*4 + 0x54]
mov edx, dword [esp + 0x14]
mov cl, byte [eax + 0x24568]
add edi, edx
test cl, cl
jne 0x524431
push 0
lea eax, [ebp + 0x2c]
push eax
push edi
push 0x171
push 0x32
call fcn.0053eff0
jmp 0x5244a6
mov eax, dword [eax + 0x2459c]
lea edx, [esp + 0x34]
push edx
push eax
call fcn.004cee70
mov ebx, 1
mov esi, eax
call fcn.00403230
mov edx, dword [esp + 0x34]
mov eax, dword [0x8927a4]
imul edx, edx, 0xb
movsx ecx, byte [eax + 0x24568]
mov esi, dword [esp + 0x10]
add ecx, edx
imul ecx, ecx, 0x7d
add ecx, esi
mov edx, dword [eax + ecx*8 + 0x2c958]
lea eax, [eax + ecx*8 + 0x2c954]
lea ecx, [esp + 0x44]
push ecx
push edx
call fcn.004cee70
mov esi, eax
call fcn.00403230
push 0
lea eax, [ebp + 0x2c]
push eax
mov eax, dword [esp + 0x4c]
push edi
add eax, 0x48
push eax
push 0x32
call fcn.0053eff0
mov esi, dword [esp + 0x24]
add esp, 0x14
inc esi
cmp esi, 0xb
mov dword [esp + 0x10], esi
jl 0x524403
jmp 0x52462e
mov eax, dword [0x8927a4]
mov dl, byte [eax + 0x24568]
neg dl
sbb edx, edx
add edx, 8
xor ecx, ecx
test edx, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], ecx
jle 0x524637
add ebp, 0x2c
jmp 0x5244f0
mov eax, dword [0x8927a4]
lea ebx, [ebx]
mov esi, dword [esp + 0x14]
mov dl, byte [eax + 0x24568]
lea edi, [ecx + 1]
imul edi, edi, 0x1a
add edi, esi
test dl, dl
jne 0x524514
push 0
push ebp
push edi
push 0x171
jmp 0x52460b
mov edx, 0x2000
shl edx, cl
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x34], edx
mov edx, dword [eax + 0x202b0]
push edx
call fcn.004cee70
mov ebx, 1
mov esi, eax
call fcn.00403230
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
and ecx, eax
cmp ecx, eax
jne 0x524615
mov esi, dword [esp + 0x10]
cmp esi, 4
push 0
push ebp
jne 0x5245cc
push edi
push 0x48
push 0x32
call fcn.0053eff0
mov eax, dword [0x8927a4]
mov ecx, dword [eax + 0x2459c]
add esp, 0x14
lea edx, [esp + 0x7c]
push edx
push ecx
call fcn.004cee70
mov esi, eax
call fcn.00403230
mov ecx, dword [esp + 0x7c]
mov eax, dword [0x8927a4]
imul ecx, ecx, 0xb
movsx edx, byte [eax + 0x24568]
add edx, ecx
imul edx, edx, 0x3e8
lea eax, [edx + eax + 0x2c974]
mov eax, dword [eax + 4]
lea edx, [esp + 0x20]
push edx
push eax
call fcn.004cee70
mov esi, eax
call fcn.00403230
mov ecx, dword [esp + 0x20]
push 0
push ebp
add edi, 0x1a
push edi
add ecx, 0x48
push ecx
jmp 0x52460b
mov ecx, dword [0x8927a4]
jle 0x5245d7
add edi, 0x1a
add ecx, 0x24598
push edi
call fcn.004086e0
mov edx, eax
mov eax, dword [0x8927a4]
imul edx, edx, 0xb
movsx ecx, byte [eax + 0x24568]
add edx, ecx
imul edx, edx, 0x7d
add edx, esi
lea ecx, [eax + edx*8 + 0x2c954]
call fcn.004086e0
add eax, 0x48
push eax
push 0x32
call fcn.0053eff0
add esp, 0x14
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x10], ecx
jl 0x5244e5
mov ebp, dword [esp + 0x48]
mov eax, dword [0x8927a4]
mov edi, dword [esp + 0x14]
mov eax, dword [eax + 0x24590]
lea edx, [esp + 0x20]
push edx
push eax
call fcn.004cee70
mov ebx, 1
mov esi, eax
call fcn.00403230
mov edx, dword [esp + 0x20]
push 0
lea ecx, [ebp + 0x1d]
push ecx
add edi, 0x17b
push edi
add edx, 9
push edx
push 0x900b0
call fcn.0053eff0
mov ecx, dword [0x8927a4]
movzx edx, byte [ecx + 0x24578]
push 0
lea eax, [ebp + 0x2a]
push eax
shr edx, 1
push edi
add edx, 0xd
push edx
push 0x900b0
call fcn.0053eff0
mov ecx, dword [0x8927a4]
mov edx, dword [ecx + 0x2459c]
add esp, 0x28
lea eax, [esp + 0x20]
push eax
push edx
call fcn.004cee70
mov esi, eax
call fcn.00403230
mov ecx, dword [esp + 0x20]
push 0
lea eax, [ebp + 0x37]
push eax
push edi
add ecx, 0x12
push ecx
push 0x900b0
call fcn.0053eff0
mov eax, dword [0x8927a4]
movzx ecx, byte [eax + 0x2457a]
push 0
lea edx, [ebp + 0x44]
push edx
push edi
add ecx, 0x15
push ecx
push 0x900b0
call fcn.0053eff0
mov eax, dword [0x8927a4]
movzx ecx, byte [eax + 0x2457b]
push 0
lea edx, [ebp + 0x51]
push edx
push edi
add ecx, 0x18
push ecx
push 0x900b0
call fcn.0053eff0
mov eax, dword [0x8927a4]
mov cl, byte [eax + 0x2457b]
add esp, 0x3c
test cl, cl
je 0x52477c
mov eax, dword [eax + 0x24584]
lea edx, [esp + 0x20]
push edx
push eax
call fcn.004cee70
mov esi, eax
call fcn.00403230
mov eax, dword [esp + 0x20]
cmp eax, 0x28
je 0x524766
cmp eax, 0x38
je 0x52475b
cmp eax, 0x48
jne 0x52477c
push 0
add ebp, 0x5e
push ebp
push edi
push 0x1e
jmp 0x52476f
push 0
add ebp, 0x5e
push ebp
push edi
push 0x1d
jmp 0x52476f
push 0
add ebp, 0x5e
push ebp
push edi
push 0x1c
push 0x900b0
call fcn.0053eff0
add esp, 0x14
pop ebp
pop ebx
pop edi
pop esi
add esp, 0xfc
ret