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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x138
mov esi, dword [esp + 0x18c]
mov edi, dword [esp + 0x14c]
mov dword [esp + 0x28], 0
mov eax, dword [edi + 4]
mov dword [esp + 0x58], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov eax, 0x4000
cmp dword [esp + 0x154], 1
jne 0x529caf
push edi
call fcn.00508500
add esp, 4
mov dword [esp + 0x18], eax
test esi, esi
je 0x529cce
mov eax, dword [esi + 8]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x914]
test eax, eax
jne 0x529d53
jmp 0x529ce0
mov dword [esp + 0x20], 0
mov eax, dword [edi + 0x914]
test eax, eax
jne 0x529d53
cmp dword [esp + 0x158], 0
je 0x529d3b
xor eax, eax
cmp dword [esp + 0x154], 0
sete bl
setne al
mov ecx, dword [edi + eax*4 + 0x91c]
mov dword [esp + 4], ecx
test ecx, ecx
jne 0x529d67
call fcn.005b5b10
push 0x97be9b
push 0x4f9
push 0x97be4c
call fcn.005b5c10
add esp, 0xc
push 0
push 0xc0103
push 0x14
call fcn.005b5d00
add esp, 0xc
jmp 0x52a451
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x70]
test byte [eax + 0x28], 8
jne 0x529d4e
mov eax, dword [0xa6b878]
jmp 0x529d53
mov eax, dword [0xa6b844]
mov dword [esp + 4], eax
xor eax, eax
cmp dword [esp + 0x154], 0
sete bl
setne al
lea ecx, [edi + eax*4]
add ecx, 0x91c
mov dword [esp + 8], ecx
lea ecx, [eax*4 + 0x924]
mov dword [esp + 0x1c], ecx
lea eax, [eax*4 + 0x24]
mov eax, dword [edi + eax]
mov dword [esp + 0x54], eax
lea eax, [edi + 0x788]
lea esi, [esp + 0x5c]
push eax
push 0x97beb4
push esi
call fcn.005e1660
add esp, 0xc
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xe4], eax
movups xmm0, xmmword [esp + 0x5c]
movups xmmword [esp + 0xd4], xmm0
lea ebp, [esp + 0xfc]
lea eax, [edi + 0x790]
push eax
push 0x97bebc
push esi
call fcn.005e0d20
add esp, 0xc
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xf8], eax
movups xmm0, xmmword [esp + 0x5c]
movups xmmword [esp + 0xe8], xmm0
mov byte [esp + 2], bl
test bl, bl
je 0x529e9b
lea eax, [edi + 0x930]
lea ebx, [esp + 0x5c]
push eax
push 0x97bec1
push ebx
call fcn.005e16b0
add esp, 0xc
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x10], eax
movups xmm0, xmmword [esp + 0x5c]
movups xmmword [ebp], xmm0
lea eax, [edi + 0x934]
push eax
push 0x97bed1
push ebx
call fcn.005e0400
add esp, 0xc
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x24], eax
movups xmm0, xmmword [esp + 0x5c]
movups xmmword [ebp + 0x14], xmm0
push ebx
call fcn.005e2910
add esp, 4
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x134], eax
movups xmm0, xmmword [esp + 0x5c]
movups xmmword [esp + 0x124], xmm0
mov eax, dword [edi + 0xb4]
shr eax, 8
and eax, 1
mov dword [esp + 0x24], eax
mov ecx, dword [edi + 0x3a8]
test cl, 1
mov ebx, dword [esp + 4]
je 0x529e94
mov dword [esp + 0x10], 1
test cl, 4
jne 0x529f05
jmp 0x529f0d
lea eax, [edi + 0x960]
push eax
push 0x97bedc
push esi
call fcn.005e16b0
add esp, 0xc
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x10], eax
movups xmm0, xmmword [esp + 0x5c]
movups xmmword [ebp], xmm0
push esi
call fcn.005e2910
add esp, 4
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x24], eax
movups xmm0, xmmword [esp + 0x5c]
movups xmmword [ebp + 0x14], xmm0
mov eax, dword [edi + 0xb4]
shr eax, 0xa
and eax, 1
mov dword [esp + 0x24], eax
mov ecx, dword [edi + 0x3a8]
test cl, 2
mov ebx, dword [esp + 4]
je 0x529f00
mov dword [esp + 0x10], 1
test cl, 8
je 0x529f0d
mov dword [esp + 0xc], 1
test eax, eax
je 0x529f3e
lea esi, [esp + 0x70]
lea eax, [esp + 0x24]
lea ecx, [esp + 0x2c]
push eax
push 0x97beea
push ecx
call fcn.005e0400
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esp + 0x5c], xmm0
cmp dword [esp + 0x10], 0
je 0x529f70
lea ebp, [esi + 0x14]
lea eax, [esp + 0x10]
lea ecx, [esp + 0x2c]
push eax
push 0x97bef2
push ecx
call fcn.005e0400
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x10], eax
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esi], xmm0
mov esi, ebp
cmp dword [esp + 0xc], 0
je 0x529fa2
lea ebp, [esi + 0x14]
lea eax, [esp + 0xc]
lea ecx, [esp + 0x2c]
push eax
push 0x97befd
push ecx
call fcn.005e0400
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x10], eax
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esi], xmm0
mov esi, ebp
movzx edx, byte [esp + 2]
test dl, dl
je 0x529fd1
mov eax, dword [edi + 0x71c]
test eax, eax
je 0x529fd1
movzx ecx, byte [eax + 0x300]
mov eax, ecx
dec al
cmp al, 3
ja 0x529fd1
mov eax, 0x100
shl eax, cl
mov dword [esp + 0x18], eax
jmp 0x529fdb
cmp dword [esp + 0x18], 0x4000
je 0x52a00b
lea ebp, [esi + 0x14]
lea eax, [esp + 0x18]
lea ecx, [esp + 0x2c]
push eax
push 0x97bf05
push ecx
call fcn.005e0800
movzx edx, byte [esp + 0xe]
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x10], eax
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esi], xmm0
mov esi, ebp
mov eax, dword [edi + 0x38]
test eax, eax
sete cl
xor dl, 1
or cl, dl
mov byte [esp + 3], dl
jne 0x52a059
mov eax, dword [esp + 0x158]
dec eax
cmp eax, 2
jae 0x52a0cc
cmp dword [edi + 0x854], 2
mov eax, dword [edi + 0xe84]
jne 0x52a04f
mov ecx, dword [edi + 0x71c]
mov ecx, dword [ecx + 0x2f4]
cmp eax, ecx
cmovae eax, ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x52a0a1
jmp 0x52a0cc
cmp dword [esp + 0x154], 1
jne 0x52a0cc
cmp dword [esp + 0x158], 1
jne 0x52a0cc
test eax, eax
jne 0x52a0cc
mov eax, dword [edi + 0x71c]
mov eax, dword [eax + 0x2f4]
test eax, eax
jne 0x52a09d
mov eax, dword [edi + 0x720]
test eax, eax
je 0x52a483
mov eax, dword [eax + 0x2f4]
test eax, eax
je 0x52a483
mov dword [esp + 0x14], eax
lea ebp, [esi + 0x14]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x2c]
push eax
push 0x97bf12
push ecx
call fcn.005e0d20
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x10], eax
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esi], xmm0
mov esi, ebp
lea eax, [esp + 0x2c]
push eax
call fcn.005e2910
add esp, 4
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x10], eax
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esi], xmm0
movzx ecx, byte [esp + 2]
test cl, cl
je 0x52a12b
jmp 0x52a170
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov esi, 0x142
mov ebp, 0x598
cmp eax, ebx
movzx ecx, byte [esp + 2]
je 0x52a42b
test eax, eax
je 0x52a42b
mov ebx, eax
test cl, cl
jne 0x52a170
xor ebp, ebp
cmp dword [esp + 0x158], 0
je 0x52a160
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x28]
and eax, 8
je 0x52a160
push 2
push edi
call fcn.00529940
add esp, 8
mov esi, eax
xor eax, eax
jmp 0x52a1dc
xor eax, eax
xor esi, esi
jmp 0x52a1dc
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x28]
xor esi, esi
mov ebp, dword [edi + 0x92c]
cmp dword [esp + 0x158], 0
je 0x52a1a8
mov ecx, eax
and ecx, 8
je 0x52a1a8
push 1
push edi
call fcn.00529940
add esp, 8
mov esi, eax
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x28]
test al, 8
jne 0x52a1c0
call fcn.005837d0
jmp 0x52a1c5
call fcn.00581b80
push eax
call fcn.0057bf10
add esp, 4
test eax, eax
je 0x52a421
mov dword [edi + 0x92c], eax
mov dword [esp + 4], ebp
mov ecx, dword [0x97bf28]
mov dword [esp + 0x2c], ecx
mov ecx, dword [0x97bf2c]
mov dword [esp + 0x30], ecx
cmp dword [edi + 0x364], 0
je 0x52a220
mov ebp, ebx
mov ecx, dword [0x97bf30]
mov dword [esp + 0x34], ecx
mov ecx, dword [0x97bf34]
mov dword [esp + 0x38], ecx
mov ecx, 2
lea edx, [esp + 0x3c]
jmp 0x52a22b
mov ebp, ebx
mov ecx, 1
lea edx, [esp + 0x34]
mov ebx, dword [0x97bf38]
mov dword [edx], ebx
mov ebx, dword [0x97bf3c]
mov dword [edx + 4], ebx
cmp dword [edi + 0x958], 0
je 0x52a260
mov edx, dword [0x97bf40]
mov dword [esp + ecx*8 + 0x34], edx
mov edx, dword [0x97bf44]
mov dword [esp + ecx*8 + 0x38], edx
add ecx, 2
jmp 0x52a261
inc ecx
mov ebx, ebp
mov dword [esp + ecx*8 + 0x30], 0
mov dword [esp + ecx*8 + 0x2c], 0
movzx ecx, si
lea edx, [esp + 0x28]
push edx
push dword [edi + 0x918]
push edi
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0xe4]
push edx
lea edx, [esp + 0x70]
push edx
push 0
push 0
push eax
push dword [esp + 0x78]
mov ebp, dword [esp + 0x2c]
push ebp
push dword [esp + 0x1bc]
push dword [esp + 0x50]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push dword [esp + 0x1bc]
push ecx
push dword [esp + 0x1c0]
push dword [esp + 0x1c0]
push dword [edi + 0x38]
push dword [esp + 0x1c4]
mov eax, dword [esp + 0xd0]
push dword [eax + 0x280]
push dword [eax]
call dword [ebx]
add esp, 0x80
mov esi, eax
push ebp
call fcn.0057bf20
add esp, 4
cmp esi, 0xffffffff
je 0x52a100
cmp esi, 0xfffffffe
movzx ecx, byte [esp + 2]
je 0x52a409
cmp esi, 1
jne 0x52a415
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x70]
test byte [eax + 0x28], 8
sete al
or cl, al
mov esi, dword [esp + 0x1c]
jne 0x52a389
mov eax, dword [edi + 0x360]
push dword [eax + 0x114]
call fcn.005516e0
add esp, 4
test eax, eax
jne 0x52a3a4
mov eax, dword [esp + 8]
mov eax, dword [eax]
test eax, eax
je 0x52a3a4
push dword [edi + esi]
call dword [eax + 4]
add esp, 4
test eax, eax
je 0x52a45e
mov eax, dword [esp + 0x28]
mov dword [edi + esi], eax
mov eax, dword [esp + 8]
mov dword [eax], ebx
movzx eax, byte [esp + 3]
mov ebx, dword [edi + eax*4 + 0x91c]
mov esi, dword [edi + eax*4 + 0x924]
cmp dword [edi + 0x1a4], 0
je 0x52a3d6
cmp dword [edi + 0x228], 0
jne 0x52a3e5
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x52a3e5
push 1
push esi
call eax
add esp, 8
mov ecx, dword [edi + 0x7b0]
mov eax, 1
test ecx, ecx
je 0x52a453
mov edx, dword [ebx + 0x3c]
test edx, edx
je 0x52a453
push ecx
push esi
call edx
mov eax, 1
add esp, 8
jmp 0x52a453
mov esi, 0x139
mov ebp, 0x58c
jmp 0x52a42b
mov esi, 0xc0103
mov ebp, 0x5a0
jmp 0x52a42b
mov esi, 0xc0103
mov ebp, 0x563
call fcn.005b5b10
push 0x97be9b
push ebp
push 0x97be4c
call fcn.005b5c10
add esp, 0xc
push 0
push esi
push 0x50
push edi
call fcn.0053c010
add esp, 0x10
xor eax, eax
add esp, 0x138
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.005b5b10
push 0x97be9b
push 0x5b1
push 0x97be4c
call fcn.005b5c10
add esp, 0xc
push 0
push 0xc0103
jmp 0x52a446
call fcn.005b5b10
push 0x97bf81
push 0x7f
push 0x97be4c
call fcn.005b5c10
add esp, 0xc
push 0
push 0xc0103
push 0x50
push edi
call fcn.0053c010
add esp, 0x10
mov dword [esp + 0x14], 0
jmp 0x52a0cc