Function at 0x525a10
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 0x52654e
sub esp, 0xf8
lea edi, [esp + 0xa8]
xor eax, eax
call fcn.0044d9bb
jmp 0x525a42
xor eax, eax
lea edi, [esp + 0xbc]
mov esi, dword [esp + 0xfc]
call fcn.0044de9e
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
cmp ecx, edx
jge 0x526524
mov ecx, dword [esp + 0xfc]
mov edx, dword [ecx + 4]
mov ebx, dword [ecx]
mov ebp, dword [ecx + 0xc]
cmp ebp, edx
jae 0x526547
mov eax, dword [ebx + ebp*4]
mov dword [esp + 0x34], eax
lea edx, [ebp + 1]
mov dword [ecx + 0xc], edx
mov dword [esp], eax
call fcn.00499ba0
movzx eax, byte [esp + 4]
test al, al
jne 0x525a40
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00526ae0
movzx eax, byte [esp + 4]
test al, al
jne 0x52637c
mov eax, dword [esp + 0x34]
cmp eax, 0x2c
jne 0x525b11
mov eax, 9
lea ecx, [0x7ff688]
lea edx, [0x744900]
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], edx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
test eax, eax
setne al
mov byte [esp + 0x12c], al
add esp, 0xf8
ret
cmp eax, 0x5b
jne 0x525c24
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov word [esp + 4], 1
mov byte [esp + 6], 1
lea ecx, [0x7d0254]
mov dword [esp + 8], ecx
call fcn.005265c0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
movzx eax, byte [esp + 0x14]
mov byte [esp + 0x23], al
lea ecx, [0x744900]
mov dword [esp], ecx
lea ecx, [esp + 0x70]
mov dword [esp + 4], ecx
call fcn.0040c190
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x23]
test dl, dl
je 0x525b99
mov ebx, dword [esp + 0xfc]
mov ebp, dword [ebx + 0xc]
inc ebp
mov dword [ebx + 0xc], ebp
mov edx, eax
mov eax, 7
jmp 0x525ad3
lea eax, [0x757820]
mov dword [esp], eax
call fcn.0040e9e0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1a
mov ecx, dword [0xa08230]
test ecx, ecx
jne 0x525c08
lea ecx, [0x7bf2e2]
mov dword [eax], ecx
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0
lea ecx, [0x8006c0]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], eax
mov byte [esp + 0x12c], 0
add esp, 0xf8
ret
mov dword [esp + 0x64], eax
mov dword [esp], eax
lea ecx, [0x7bf2e2]
mov dword [esp + 4], ecx
call fcn.0040f250
mov eax, dword [esp + 0x64]
jmp 0x525bc4
mov dword [esp], eax
call fcn.00499b30
movzx eax, byte [esp + 4]
test al, al
jne 0x52617d
mov eax, dword [esp + 0x34]
cmp eax, 0x27
je 0x526176
cmp eax, 0x22
setne cl
test cl, cl
je 0x525faf
cmp eax, 0x28
je 0x525f83
cmp eax, 0x29
jne 0x525c8e
mov dword [esp + 0x38], eax
lea eax, [0x744100]
mov dword [esp], eax
lea eax, [esp + 0x38]
mov dword [esp + 4], eax
call fcn.0040c0a0
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov eax, 0xe
jmp 0x525ad3
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
lea eax, [0x7d0250]
mov dword [esp + 4], eax
call fcn.00526560
mov eax, dword [esp + 8]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
lea edx, [0x744900]
mov dword [esp], edx
lea ebx, [esp + 0x88]
mov dword [esp + 4], ebx
call fcn.0040c190
mov eax, dword [esp + 8]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x50], ecx
mov edi, esp
lea esi, [esp + 0x100]
call fcn.0044de9e
mov dword [esp + 0x14], 1
call fcn.00524720
movzx eax, byte [esp + 0x18]
test al, al
jne 0x525f3c
lea eax, [0x749920]
mov dword [esp], eax
mov ecx, dword [0x9f3794]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0xc], edx
call fcn.004090d0
movzx eax, byte [esp + 0x14]
test al, al
je 0x525d59
mov eax, 0xc
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
jmp 0x525ad3
lea eax, [0x749920]
mov dword [esp], eax
mov ecx, dword [0x9f3790]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0xc], edx
call fcn.004090d0
movzx eax, byte [esp + 0x14]
test al, al
je 0x525d9c
mov eax, 0xb
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
jmp 0x525ad3
lea eax, [0x749920]
mov dword [esp], eax
mov ecx, dword [0x9f3788]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0xc], edx
call fcn.004090d0
movzx eax, byte [esp + 0x14]
test al, al
je 0x525ddf
mov eax, 0xa
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
jmp 0x525ad3
lea eax, [0x749920]
mov dword [esp], eax
mov eax, dword [0x9f37d4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
call fcn.004090d0
movzx eax, byte [esp + 0x14]
test al, al
je 0x525e22
mov eax, 0xf
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
jmp 0x525ad3
mov eax, dword [esp + 0x54]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea eax, [0x744900]
mov dword [esp], eax
lea eax, [esp + 0x78]
mov dword [esp + 4], eax
call fcn.0040c190
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
lea eax, [0x7bb3c6]
mov dword [esp], eax
mov dword [esp + 4], 0x13
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004b9be0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
lea edx, [0x757820]
mov dword [esp], edx
call fcn.0040e9e0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x28]
mov dword [eax + 4], ecx
mov ecx, dword [0xa08230]
test ecx, ecx
jne 0x525f22
mov ecx, dword [esp + 0x58]
mov dword [eax], ecx
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0
lea ecx, [0x8006c0]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], eax
mov byte [esp + 0x12c], 0
add esp, 0xf8
ret
mov dword [esp + 0x64], eax
mov dword [esp], eax
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
call fcn.0040f250
mov eax, dword [esp + 0x64]
jmp 0x525ede
lea eax, [0x749920]
mov dword [esp], eax
mov ecx, dword [0x9f37c8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0xc], edx
call fcn.004090d0
movzx eax, byte [esp + 0x14]
test al, al
je 0x525d16
mov eax, 1
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
jmp 0x525ad3
mov dword [esp + 0x3c], eax
lea eax, [0x744100]
mov dword [esp], eax
lea eax, [esp + 0x3c]
mov dword [esp + 4], eax
call fcn.0040c0a0
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov eax, 0xd
jmp 0x525ad3
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov word [esp + 4], 1
mov byte [esp + 6], 1
lea ecx, [0x7d0258]
mov dword [esp + 8], ecx
call fcn.005265c0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
movzx eax, byte [esp + 0x14]
mov byte [esp + 0x23], al
lea ecx, [0x744900]
mov dword [esp], ecx
lea edx, [esp + 0x68]
mov dword [esp + 4], edx
call fcn.0040c190
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
movzx edx, byte [esp + 0x23]
test dl, dl
je 0x5260eb
mov edx, dword [esp + 0xfc]
mov ebx, dword [edx + 0xc]
inc ebx
mov dword [edx + 0xc], ebx
lea edx, [0x744900]
cmp ecx, edx
jne 0x52652f
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x40], ecx
mov edx, dword [eax]
lea edi, [esp + 0xe4]
xor eax, eax
call fcn.0044d9bb
mov dword [esp], edx
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], ecx
call fcn.00526ca0
lea esi, [esp + 8]
lea edi, [esp + 0xe4]
call fcn.0044de9e
movzx ecx, byte [esp + 0x1c]
mov byte [esp + 0x22], cl
lea edi, [esp + 0xa8]
lea esi, [esp + 0xe4]
call fcn.0044de9e
movzx ecx, byte [esp + 0x22]
test cl, cl
jne 0x5260b0
mov eax, 4
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov ebx, ecx
mov ecx, edx
mov edx, ebx
jmp 0x525ad3
lea edi, [esp + 0xd0]
lea esi, [esp + 0xa8]
call fcn.0044de9e
lea eax, [0x7a3180]
mov dword [esp], eax
lea eax, [esp + 0xd0]
mov dword [esp + 4], eax
call fcn.0040bfc0
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov eax, 6
jmp 0x5260a5
lea eax, [0x757820]
mov dword [esp], eax
call fcn.0040e9e0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x17
mov ecx, dword [0xa08230]
test ecx, ecx
jne 0x52615a
lea ecx, [0x7bd8f0]
mov dword [eax], ecx
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0
lea ecx, [0x8006c0]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], eax
mov byte [esp + 0x12c], 0
add esp, 0xf8
ret
mov dword [esp + 0x64], eax
mov dword [esp], eax
lea ecx, [0x7bd8f0]
mov dword [esp + 4], ecx
call fcn.0040f250
mov eax, dword [esp + 0x64]
jmp 0x526116
xor ecx, ecx
jmp 0x525c4c
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
lea eax, [0x7d0268]
mov dword [esp + 4], eax
call fcn.00526560
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
lea edx, [0x744900]
mov dword [esp], edx
lea ebx, [esp + 0x90]
mov dword [esp + 4], ebx
call fcn.0040c190
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
lea edx, [0x744900]
cmp edx, eax
jne 0x5262f7
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx]
cmp ebx, 4
jne 0x526375
mov ebx, dword [ebp]
cmp ebx, 0x65757274
jne 0x5262f5
movzx eax, byte [0x7fed4f]
lea ecx, [0x9c78c0]
add eax, ecx
lea ecx, [0x73fdc0]
mov ebx, 3
cmp edx, ecx
jne 0x5262b5
mov ebp, dword [eax + 4]
mov esi, dword [eax]
cmp ebp, 2
jne 0x5262f1
movzx ebp, word [esi]
cmp bp, 0x6e69
jne 0x5262b3
mov eax, 0xa
lea ecx, [0x7ff690]
lea edx, [0x744900]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x30], eax
lea ebx, [0x7498e0]
mov dword [esp], ebx
mov ebx, dword [esp + 0x114]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc], ebx
call fcn.004090d0
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x14]
mov eax, dword [eax]
test cl, cl
je 0x5262a5
mov ecx, 8
lea edx, [0x74c4c0]
mov ebx, eax
mov eax, ecx
mov ecx, ebx
jmp 0x525ad3
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
jmp 0x52629a
cmp edx, ecx
jne 0x5262e6
mov edx, dword [eax + 4]
mov ebp, dword [eax]
cmp edx, 2
jne 0x5262db
movzx edx, word [ebp]
cmp dx, 0x4e49
je 0x52623a
mov edx, ecx
mov ecx, eax
mov eax, ebx
jmp 0x52624b
mov edx, ecx
mov ecx, eax
mov eax, ebx
jmp 0x52624b
mov edx, ecx
mov ecx, eax
mov eax, ebx
jmp 0x52624b
cmp edx, ecx
jmp 0x5262b5
cmp edx, eax
jne 0x526365
mov ebx, dword [ecx]
mov ebp, dword [ecx + 4]
cmp ebp, 5
jne 0x526355
mov ebp, dword [ebx]
cmp ebp, 0x736c6166
jne 0x526345
movzx ebx, byte [ebx + 4]
cmp bl, 0x65
jne 0x526335
movzx eax, byte [0x7fed50]
lea ecx, [0x9c78c0]
add eax, ecx
lea ecx, [0x73fdc0]
mov ebx, 3
jmp 0x52621a
mov ebx, 7
mov ebp, ecx
mov ecx, eax
mov eax, ebp
jmp 0x52621a
mov ebx, 7
mov ebp, ecx
mov ecx, eax
mov eax, ebp
jmp 0x52621a
mov ebx, 7
mov ebp, ecx
mov ecx, eax
mov eax, ebp
jmp 0x52621a
mov ebx, 7
mov ebp, ecx
mov ecx, eax
mov eax, ebp
jmp 0x52621a
cmp edx, eax
jmp 0x5262f7
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
lea eax, [0x7d025c]
mov dword [esp + 4], eax
call fcn.00526560
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x54], ecx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x40
call fcn.0047e800
movsd xmm0, qword [esp + 0xc]
movsd qword [esp + 0x44], xmm0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x60], eax
lea ecx, [0x7401c0]
mov dword [esp], ecx
lea ecx, [esp + 0x44]
mov dword [esp + 4], ecx
call fcn.0040c110
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x60]
test edx, edx
jne 0x526401
mov edx, ecx
mov ecx, eax
mov eax, 2
jmp 0x525ad3
mov eax, dword [esp + 0x54]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea eax, [0x744900]
mov dword [esp], eax
lea eax, [esp + 0x98]
mov dword [esp + 4], eax
call fcn.0040c190
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ecx
lea eax, [0x7c76fe]
mov dword [esp], eax
mov dword [esp + 4], 0x2e
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004b9be0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x5c], ecx
lea edx, [0x757820]
mov dword [esp], edx
call fcn.0040e9e0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x2c]
mov dword [eax + 4], ecx
mov ecx, dword [0xa08230]
test ecx, ecx
jne 0x52650a
mov ecx, dword [esp + 0x5c]
mov dword [eax], ecx
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0
lea ecx, [0x8006c0]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], eax
mov byte [esp + 0x12c], 0
add esp, 0xf8
ret
mov dword [esp + 0x64], eax
mov dword [esp], eax
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], ecx
call fcn.0040f250
mov eax, dword [esp + 0x64]
jmp 0x5264c6
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x525ad3
mov dword [esp], ecx
mov dword [esp + 4], edx
lea eax, [0x7441c0]
mov dword [esp + 8], eax
call fcn.0040bdf0
ud2
call fcn.00426960
ud2
call fcn.0044be50
jmp fcn.00525a10