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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x78]
cmp eax, dword [ecx + 8]
jbe 0x52a48b
sub esp, 0xf8
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 0x1a0]
test ecx, ecx
jg 0x52a46a
mov ecx, dword [esp + 0x108]
test ecx, ecx
jle 0x529bd9
mov edx, dword [esp + 0x104]
mov ebx, dword [edx + ecx*4 - 4]
mov ebp, dword [ebx + 0x34]
mov ebx, dword [ebx + 0x30]
mov esi, dword [eax + 0x24]
cmp dword [eax + 0x28], ebp
je 0x529bbc
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 5
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
lea eax, [0x65ece4]
mov dword [esp], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
call fcn.004092a0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], ecx
add esp, 0xf8
ret
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call fcn.004028b0
movzx eax, byte [esp + 0xc]
test al, al
je 0x52a45e
mov eax, dword [esp + 0x110]
test byte [eax], al
lea esi, [eax + 0x10]
lea edi, [esp + 0x94]
call fcn.0045e58e
lea edi, [esp + 0x80]
lea esi, [esp + 0x94]
call fcn.0045e58e
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
test edx, 0x80000000
je 0x52a44b
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or edx, ecx
mov ecx, ebx
shl ebx, 1
mov ebp, edx
shl edx, 1
shr ebx, 0x1f
or ebx, edx
mov edx, ebx
add ebx, 0xd7b17f80
shr ebp, 0x1f
add edx, 0xd7b17f80
adc ebp, 0xd
test ebp, ebp
sete dl
test ebx, ebx
sete bl
and edx, ebx
test dl, dl
je 0x529c64
test ecx, 0x3fffffff
je 0x52a432
mov eax, dword [esp + 0xfc]
lea esi, [eax + 0x158]
mov dword [esp + 0x4c], esi
lea edi, [esp + 0xe4]
call fcn.0045e58e
lea edi, [esp]
lea esi, [esp + 0x94]
call fcn.0045e58e
lea edi, [esp + 0x14]
lea esi, [esp + 0xe4]
call fcn.0045e58e
call fcn.0049da10
movzx eax, byte [esp + 0x28]
test al, al
jne 0x52a2a6
mov eax, dword [esp + 0xfc]
lea esi, [eax + 0x16c]
mov dword [esp + 0x4c], esi
lea edi, [esp + 0xbc]
call fcn.0045e58e
lea edi, [esp]
lea esi, [esp + 0x94]
call fcn.0045e58e
lea edi, [esp + 0x14]
lea esi, [esp + 0xbc]
call fcn.0045e58e
call fcn.0049d8d0
movzx eax, byte [esp + 0x28]
test al, al
jne 0x52a11a
mov eax, dword [esp + 0x110]
mov eax, dword [eax + 0x30]
test eax, eax
jne 0x529d13
mov eax, 0x3d090
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0x100]
cmp ecx, 1
jne 0x52a0f3
mov edx, dword [esp + 0x108]
test edx, edx
je 0x52a0b7
mov ebx, dword [esp + 0x104]
mov ebx, dword [ebx]
cmp ecx, 1
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], ebx
jne 0x52a0a7
mov eax, dword [0x77d590]
mov ecx, dword [0x77d594]
mov edx, dword [0x77d598]
mov ebx, dword [esp + 0xfc]
mov ebp, dword [ebx + 0x184]
mov esi, dword [ebx + 0x188]
mov edi, dword [ebx + 0x18c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
call fcn.005302c0
movzx eax, byte [esp + 0x18]
test al, al
jne 0x52a00c
jne 0x529fbe
xor eax, eax
test al, al
jne 0x529f15
mov eax, dword [esp + 0x100]
cmp eax, 1
jne 0x529f09
mov eax, dword [esp + 0xfc]
movzx ecx, byte [eax + 0x1c0]
test cl, cl
je 0x529e9a
movzx ecx, byte [eax + 0x1c1]
test cl, cl
je 0x529e9a
movzx ecx, byte [eax + 0x1c0]
test cl, cl
je 0x529e0e
mov ecx, dword [eax + 0x1c4]
test ecx, ecx
jl 0x529e0e
mov edx, dword [esp + 0x108]
dec edx
cmp ecx, edx
jl 0x529e2b
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0
add esp, 0xf8
ret
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 3
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
lea eax, [0x65ece4]
mov dword [esp], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
call fcn.004092a0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], ecx
add esp, 0xf8
ret
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
lea eax, [0x65ece4]
mov dword [esp], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
call fcn.004092a0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], ecx
add esp, 0xf8
ret
mov eax, dword [esp + 0xfc]
jmp 0x529ded
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.0052c650
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
lea ebx, [0x530770]
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0xfc]
mov dword [esp + 0x54], ebx
lea ebp, [esp + 0x34]
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x5c], ebp
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
lea eax, [esp + 0x50]
mov dword [esp + 0xc], eax
call fcn.0052d890
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test eax, eax
jne 0x529fa9
mov eax, dword [esp + 0x100]
cmp eax, 1
jmp 0x529dc2
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], edx
add esp, 0xf8
ret
mov eax, dword [0x77d5a0]
mov ecx, dword [0x77d5a4]
mov edx, dword [0x77d5a8]
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx + 0x184]
mov esi, dword [ebx + 0x188]
mov edi, dword [ebx + 0x18c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
call fcn.005302c0
movzx eax, byte [esp + 0x18]
jmp 0x529db0
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.0052b0b0
movzx eax, byte [esp + 4]
test al, al
jne 0x52a031
movzx eax, byte [esp + 0x2f]
test al, al
jmp 0x529da8
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 6
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
lea eax, [0x65ece4]
mov dword [esp], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
call fcn.004092a0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], ecx
add esp, 0xf8
ret
cmp ecx, 2
je 0x529d54
xor eax, eax
jmp 0x529da0
lea eax, [0x5e46a0]
mov dword [esp], eax
call fcn.0040b8d0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x38
lea ecx, [0x61f39f]
mov dword [eax], ecx
lea ecx, [0x65e99c]
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], eax
add esp, 0xf8
ret
cmp ecx, 2
jne 0x52a106
mov edx, dword [esp + 0x108]
test edx, edx
jmp 0x529d34
cmp ecx, 1
mov edx, dword [esp + 0x108]
mov ebx, 0
jmp 0x529d46
lea edi, [esp]
lea esi, [esp + 0x94]
call fcn.0045e58e
lea eax, [0x615c78]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x19
call fcn.004979e0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], ecx
lea edi, [esp + 0xa8]
mov esi, dword [esp + 0x4c]
call fcn.0045e58e
lea edi, [esp]
lea esi, [esp + 0xa8]
call fcn.0045e58e
lea ecx, [0x615c78]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0x19
call fcn.004979e0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov edx, dword [esp + 0x48]
mov dword [esp], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 4], edx
call fcn.00409130
mov eax, dword [esp + 8]
lea ecx, [0x5db180]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
call fcn.00409130
mov eax, dword [esp + 8]
lea ecx, [0x5db180]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
lea eax, [0x616ab6]
mov dword [esp], eax
mov dword [esp + 4], 0x1b
lea eax, [esp + 0x60]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004affe0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov edx, dword [esp + 0xfc]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], 1
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
lea eax, [0x65ece4]
mov dword [esp], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
call fcn.004092a0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], ecx
add esp, 0xf8
ret
lea edi, [esp]
lea esi, [esp + 0x94]
call fcn.0045e58e
lea eax, [0x615c78]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x19
call fcn.004979e0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], ecx
lea edi, [esp + 0xd0]
mov esi, dword [esp + 0x4c]
call fcn.0045e58e
lea edi, [esp]
lea esi, [esp + 0xd0]
call fcn.0045e58e
lea ecx, [0x615c78]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0x19
call fcn.004979e0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov edx, dword [esp + 0x48]
mov dword [esp], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 4], edx
call fcn.00409130
mov eax, dword [esp + 8]
lea ecx, [0x5db180]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
call fcn.00409130
mov eax, dword [esp + 8]
lea ecx, [0x5db180]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
lea eax, [0x6170e7]
mov dword [esp], eax
mov dword [esp + 4], 0x1c
lea eax, [esp + 0x60]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004affe0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov edx, dword [esp + 0xfc]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], 1
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
lea eax, [0x65ece4]
mov dword [esp], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
call fcn.004092a0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], ecx
add esp, 0xf8
ret
call fcn.0049fa20
lea edi, [esp + 0x94]
lea esi, [esp]
call fcn.0045e58e
jmp 0x529c64
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x8c]
jmp 0x529c48
mov eax, dword [esp + 0xfc]
jmp 0x529b4d
lea eax, [0x65ed34]
mov dword [esp + 0x114], eax
lea eax, [0x7a0788]
mov dword [esp + 0x118], eax
add esp, 0xf8
ret
call fcn.0045c8b0
jmp fcn.00529af0