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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x88]
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x28], ecx
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x24], eax
cmp esi, 7
jle 0x52c6e2
lea eax, [esi*4]
mov edx, esi
sub edx, ecx
mov dword [esp + 0x2c], eax
add eax, edi
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], eax
call fcn.0052a3d0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
mov edx, ebp
mov dword [esp + 8], ebp
sub edx, esi
lea ecx, [ebx + eax]
mov dword [esp + 0xc], edx
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], ecx
call fcn.0052a3d0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
add edx, ecx
mov ecx, dword [esp + 0x30]
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx + 4]
cmp eax, 8
ja case.default.0x52c6db
mov dword [esp + 0x30], edx
jmp dword [eax*4 + 0x7516d8]
lea eax, [esi + ebp]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], eax
mov eax, ecx
add eax, esi
mov dword [esp + 0x78], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0052b970
mov eax, dword [esp + 0x34]
mov dword [esp + 4], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.005f5500
mov eax, esi
sub eax, ebp
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov edx, dword [esp + 0x30]
mov dword [esp], edx
call fcn.005f5500
mov dword [esp + 0x48], 1
mov edx, dword [esp + 0x30]
lea eax, [esi + esi]
lea ecx, [esi*8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
add eax, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
add eax, ecx
cmp esi, 8
mov dword [esp + 0x38], eax
je 0x52ca70
mov eax, dword [esp + 0x30]
mov dword [esp + 0x4c], ecx
add eax, ecx
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
mov dword [esp], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 4], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 0x44], eax
call fcn.0052bac0
mov eax, dword [esp + 0x44]
mov dword [esp + 8], ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov ebx, esi
sar ebx, 1
call fcn.0052bac0
mov eax, ebp
mov edi, dword [esp + 0x28]
sub eax, ebx
mov ecx, dword [esp + 0x4c]
cmp edi, ebp
jle 0x52c80d
mov eax, edi
sub eax, ebx
cmp eax, 0
je 0x52cb78
jg 0x52caf8
mov eax, dword [esp + 0x38]
mov edx, ecx
mov edi, eax
cmp ecx, 4
jae 0x52cbd2
test dl, 2
je 0x52c83a
mov word [edi], 0
add edi, 2
and edx, 1
je 0x52c842
mov byte [edi], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xf
jg 0x52c869
cmp ebp, 0xf
jg 0x52c869
jmp 0x52cc01
cmp ebp, edx
jg 0x52c878
cmp eax, edx
je 0x52cc30
cmp ebp, edx
je 0x52cc30
mov edx, ebx
shr edx, 0x1f
add edx, ebx
sar edx, 1
mov ebx, edx
cmp eax, edx
jle 0x52c855
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], eax
mov eax, ebp
sub eax, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0052c620
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
mov dword [esp + 8], eax
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.005f51a0
mov ebx, eax
mov eax, dword [esp + 0x48]
test eax, eax
je 0x52ca42
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.005f5350
sub ebx, eax
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x20]
add eax, ebp
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xc], edi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.005f51a0
add eax, ebx
je 0x52c94c
add edi, esi
xor ecx, ecx
lea edx, [ebp + edi*4]
add eax, dword [edx]
jb 0x52cca6
mov dword [edx], eax
test ecx, ecx
je 0x52c94c
nop
add edx, 4
mov eax, dword [edx]
inc eax
mov dword [edx], eax
test eax, eax
je 0x52c940
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], edi
mov eax, ecx
mov dword [esp + 0xc], ecx
sub eax, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.005f5500
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
jmp 0x52c744
mov eax, dword [esp + 0x34]
mov dword [esp + 4], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.005f5500
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x30]
mov dword [esp], edx
call fcn.005f5500
mov dword [esp + 0x48], 0
mov edx, dword [esp + 0x30]
jmp 0x52c75c
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], edi
mov eax, ecx
mov dword [esp + 0xc], ecx
sub eax, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.005f5500
mov eax, esi
sub eax, ebp
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
jmp 0x52c9e0
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.005f51a0
add ebx, eax
jmp 0x52c8fe
mov eax, dword [esp + 0x24]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
add eax, 0x40
mov dword [esp], eax
call fcn.0052e670
mov dword [esp + 4], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 8], ebx
mov dword [esp], edi
call fcn.0052e670
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x28]
mov dword [esp + 4], eax
lea eax, [edi + 0x40]
mov dword [esp + 0x10], ebp
mov dword [esp], eax
mov dword [esp + 8], ebx
call fcn.0052b970
mov edx, 0x10
sub edx, ebx
lea eax, [ebx + ebp + 0x10]
sub edx, ebp
shl edx, 2
lea edi, [edi + eax*4]
cmp edx, 4
jae 0x52cb52
test dl, 2
je 0x52cae7
mov word [edi], 0
add edi, 2
and edx, 1
je 0x52c8b2
mov byte [edi], 0
jmp 0x52c8b2
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov eax, ebp
sub eax, ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], eax
mov eax, edi
sub eax, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0052c620
lea eax, [esi + esi]
mov edx, eax
mov ebx, dword [esp + 0x20]
sub edx, edi
add edi, eax
mov eax, edi
sub edx, ebp
shl edx, 2
add eax, ebp
cmp edx, 4
lea edi, [ebx + eax*4]
jb 0x52cada
test edi, 1
jne 0x52cc80
test edi, 2
jne 0x52cc70
mov ecx, edx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
jmp 0x52cada
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x18], eax
mov eax, ebp
sub eax, ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
sub eax, ebx
add ebx, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0052bac0
lea eax, [esi + esi]
mov edx, eax
sub edx, ebx
add ebx, eax
shl edx, 2
mov eax, dword [esp + 0x20]
cmp edx, 4
lea edi, [eax + ebx*4]
jb 0x52cada
jmp 0x52cb52
test al, 1
jne 0x52cc9a
test edi, 2
jne 0x52cc8a
mov ecx, edx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
jmp 0x52c82d
mov dword [esp + 0x48], 0
jmp 0x52c75c
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], edi
mov dword [esp], eax
call fcn.0052b970
jmp 0x52c8b2
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], eax
mov eax, ebp
sub eax, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0052bac0
jmp 0x52c8b2
mov word [edi], 0
sub edx, 2
add edi, 2
jmp 0x52cb6a
mov byte [edi], 0
dec edx
inc edi
jmp 0x52cb5e
mov word [edi], 0
sub edx, 2
add edi, 2
jmp 0x52cbe6
mov byte [eax], 0
lea edi, [eax + 1]
dec edx
jmp 0x52cbda
mov ecx, 1
jmp 0x52c938