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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xa0]
cmp eax, dword [ecx + 8]
jbe 0x59e7ec
sub esp, 0x120
lea eax, [0x66eee0]
mov dword [esp], eax
mov ecx, dword [esp + 0x124]
mov dword [esp + 4], ecx
lea edx, [0x67b12e]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0xa
call fcn.00410bf0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
test eax, eax
je 0x59e792
mov dword [esp + 0x5c], eax
lea ecx, [0x6484a0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], eax
call fcn.00444130
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa4], eax
lea ecx, [0x66eee0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x124]
mov dword [esp + 4], ecx
lea ecx, [0x67b12e]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0xa
call fcn.00410bf0
lea eax, [esp + 0x18]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov dword [esp + 0x9c], edx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x6c], ecx
xor ebx, ebx
xor ebp, ebp
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0xa4]
jmp 0x59dc3e
mov ebx, dword [esp + 0x68]
inc ebx
mov ebp, ecx
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x9c]
cmp ebx, ecx
jge 0x59e776
mov dword [esp + 0x68], ebx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x58], ebp
lea eax, [edx + ebx*8]
mov ecx, dword [eax]
mov dword [esp + 0x88], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], eax
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0057e6b0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x679925]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0xffffffff
call fcn.004ba2a0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
cmp ecx, 1
jne 0x59dcd6
mov edx, dword [eax + 4]
test edx, edx
jne 0x59dcd6
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x8c]
jmp 0x59dc21
test ecx, ecx
jbe 0x59e7e4
mov dword [esp + 0x44], ecx
mov dword [esp + 0x80], eax
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.0057e6b0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x80]
mov dword [edi + 4], ecx
mov edx, dword [0x7e34e0]
test edx, edx
jne 0x59e76c
mov dword [edi], eax
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x679927]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call fcn.004bbda0
mov ecx, dword [esp + 0x10]
test ecx, ecx
jge 0x59dd56
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x8c]
jmp 0x59dc21
mov ebx, dword [esp + 0x80]
mov ebp, dword [ebx]
mov edx, dword [ebx + 4]
cmp ecx, edx
ja 0x59e7df
lea eax, [ecx + 1]
cmp eax, edx
ja 0x59e7d8
mov dword [esp + 0x40], ecx
mov dword [esp + 0x7c], ebp
sub edx, eax
mov esi, edx
neg edx
sar edx, 0x1f
and edx, eax
lea eax, [edx + ebp]
test ecx, ecx
jne 0x59e724
xor edx, edx
test dl, dl
jne 0x59ddad
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x8c]
jmp 0x59dc21
mov dword [esp], eax
mov dword [esp + 4], esi
mov byte [esp + 8], 1
call fcn.005a0720
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0x10]
test cl, cl
jne 0x59dde3
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x8c]
jmp 0x59dc21
mov dword [esp + 0x38], edx
mov dword [esp + 0x70], eax
lea eax, [0x66b620]
mov dword [esp], eax
call fcn.0040c800
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov ecx, dword [0x7e34e0]
test ecx, ecx
jne 0x59e712
mov edx, dword [esp + 0x7c]
mov dword [eax], edx
mov edx, dword [esp + 0x38]
mov dword [eax + 0xc], edx
mov edx, dword [0x7e34e0]
test edx, edx
jne 0x59e6fd
mov edx, dword [esp + 0x70]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + 0x4c], edx
mov edx, dword [0x7e34e0]
test edx, edx
jne 0x59e6e5
mov edx, dword [esp + 0x88]
mov dword [eax + 0x48], edx
mov dword [esp + 0x90], eax
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0x44]
mov ecx, 1
jmp 0x59de80
lea ebp, [eax + 1]
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x90]
mov edx, ecx
mov ebx, esi
mov ecx, ebp
cmp ecx, ebx
jge 0x59e66a
jae 0x59e7cf
mov dword [esp + 0x50], ecx
lea eax, [edx + ecx*8]
mov dword [esp + 0x98], eax
mov ebx, dword [eax]
mov ebp, dword [eax + 4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0057e6b0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
lea edx, [ecx + eax*8 + 4]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 8]
mov dword [edx], ebx
mov edx, dword [0x7e34e0]
test edx, edx
jne 0x59e651
mov edx, dword [esp + 0x98]
mov dword [edx], ebp
test ebx, ebx
je 0x59de6c
mov dword [esp + 0x64], ebx
mov dword [esp + 0x94], ebp
mov dword [esp], ebp
mov dword [esp + 4], ebx
lea eax, [0x679927]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call fcn.004bbda0
mov ecx, dword [esp + 0x10]
test ecx, ecx
jl 0x59e63d
mov edx, dword [esp + 0x64]
cmp ecx, edx
ja 0x59e7ca
lea eax, [ecx + 1]
cmp eax, edx
ja 0x59e7c3
sub edx, eax
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, eax
mov eax, dword [esp + 0x94]
add edx, eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x3c], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004bae50
mov eax, dword [esp + 8]
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x78]
mov dword [esp], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 4], edx
mov byte [esp + 8], 0
call fcn.005a0720
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + 0x14]
test dl, dl
je 0x59e56e
mov edx, dword [esp + 0x48]
cmp edx, 6
jg 0x59e13f
cmp edx, 4
jne 0x59e0bb
mov edx, dword [esp + 0x84]
cmp dword [edx], 0x68746170
jne 0x59dfec
mov edx, dword [esp + 0x90]
mov dword [edx + 0x14], ecx
mov ebx, dword [0x7e34e0]
test ebx, ebx
jne 0x59dfe2
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x59de6c
lea edi, [edx + 0x10]
call fcn.0045c920
jmp 0x59dfd2
mov eax, dword [esp + 0x90]
mov edx, dword [eax + 0x54]
mov ebx, dword [eax + 0x50]
mov ebp, dword [eax + 0x58]
lea esi, [edx + 1]
mov ecx, edx
mov edx, dword [esp + 0x98]
mov edi, ebx
mov ebx, dword [edx]
mov edx, dword [edx + 4]
cmp ebp, esi
jb 0x59e04c
lea ebp, [ecx + 1]
mov dword [eax + 0x54], ebp
lea ebp, [edi + ecx*8 + 4]
mov dword [ebp], edx
mov edx, dword [0x7e34e0]
lea edi, [edi + ecx*8]
test edx, edx
jne 0x59e03f
mov dword [edi], ebx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x59de6c
mov ecx, eax
mov eax, ebx
call fcn.0045c920
mov eax, ecx
jmp 0x59e02f
mov dword [esp + 0x64], edx
mov dword [esp + 0x94], ebx
lea eax, [0x643700]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.004441e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x58], edx
mov edx, dword [0x7e34e0]
test edx, edx
jne 0x59e0b1
mov dword [ebx + 0x50], eax
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x94]
mov edi, eax
mov eax, dword [esp + 0x90]
jmp 0x59e013
lea edi, [ebx + 0x50]
call fcn.0045c920
jmp 0x59e098
cmp edx, 6
jne 0x59dfec
mov edx, dword [esp + 0x84]
cmp dword [edx], 0x616d6f64
jne 0x59e10c
cmp word [edx + 4], 0x6e69
jne 0x59e10c
mov edx, dword [esp + 0x90]
mov dword [edx + 0x1c], ecx
mov ebx, dword [0x7e34e0]
test ebx, ebx
jne 0x59e102
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x59de6c
lea edi, [edx + 0x18]
call fcn.0045c920
jmp 0x59e0f2
cmp dword [edx], 0x75636573
jne 0x59dfec
cmp word [edx + 4], 0x6572
jne 0x59dfec
mov eax, dword [esp + 0x90]
mov byte [eax + 0x40], 1
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x59de6c
cmp edx, 7
jne 0x59e483
mov dword [esp + 0x34], ecx
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x84]
cmp dword [edx], 0x69707865
jne 0x59e16d
cmp word [edx + 4], 0x6572
jne 0x59e16d
cmp byte [edx + 6], 0x73
je 0x59e1eb
cmp dword [edx], 0x2d78616d
jne 0x59dfec
cmp word [edx + 4], 0x6761
jne 0x59dfec
cmp byte [edx + 6], 0x65
jne 0x59dfec
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00472d70
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x59dfec
test eax, eax
je 0x59e1ca
mov ecx, dword [esp + 0x34]
test ecx, ecx
jbe 0x59e7bc
mov edx, dword [esp + 0x74]
cmp byte [edx], 0x30
je 0x59dfec
test eax, eax
jg 0x59e1d1
mov eax, 0xffffffff
mov edx, dword [esp + 0x90]
mov dword [edx + 0x3c], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x59de6c
mov edx, dword [esp + 0x90]
mov dword [edx + 0x38], ecx
mov ebx, dword [0x7e34e0]
test ebx, ebx
jne 0x59e476
mov dword [edx + 0x34], eax
lea edi, [esp + 0x10c]
mov edx, eax
xor eax, eax
call fcn.0045cbbb
lea edi, [esp + 0xe4]
call fcn.0045cbbb
lea ecx, [0x682d6a]
mov dword [esp], ecx
mov dword [esp + 4], 0x1d
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0xc], ebx
mov ebp, dword [0x61bf60]
mov dword [esp + 0x10], ebp
mov ebp, dword [0x61bf5c]
mov dword [esp + 0x14], ebp
call fcn.0049a380
lea edi, [esp + 0xe4]
mov esi, dword [esp + 0xa0]
call fcn.0045d09e
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x54], ecx
lea edi, [esp + 0x10c]
lea esi, [esp + 0xe4]
call fcn.0045d09e
lea edi, [esp + 0xd0]
lea esi, [esp + 0x10c]
call fcn.0045d09e
mov ecx, dword [esp + 0x54]
test ecx, ecx
jne 0x59e39e
lea edi, [esp + 0xbc]
lea esi, [esp + 0xd0]
call fcn.0045d09e
lea edi, [esp + 0xa8]
xor eax, eax
call fcn.0045cbbb
nop
nop
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xc0]
test edx, 0x80000000
je 0x59e32a
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, edx
shl ebx, 1
mov edx, ecx
shl ecx, 1
shr ebx, 0x1f
or ecx, ebx
mov ebx, ecx
add ecx, 0xd7b17f80
mov dword [esp + 0xc4], ecx
shr edx, 0x1f
add ebx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0xc8], edx
and dword [esp + 0xbc], 0x3fffffff
mov dword [esp + 0xc0], 0
mov dword [esp + 0xcc], 0
lea edi, [esp + 0xa8]
lea esi, [esp + 0xbc]
call fcn.0045d09e
mov eax, dword [esp + 0x90]
lea edi, [eax + 0x20]
mov ecx, dword [0x7e34e0]
test ecx, ecx
jne 0x59e378
lea esi, [esp + 0xa8]
call fcn.0045d09e
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x59de6c
lea eax, [0x677480]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa8]
mov dword [esp + 8], eax
call fcn.00411d70
mov eax, dword [esp + 0x90]
jmp 0x59e368
lea edi, [esp + 0xf8]
xor eax, eax
call fcn.0045cbbb
lea edi, [esp + 0xe4]
call fcn.0045cbbb
lea ecx, [0x682d87]
mov dword [esp], ecx
mov dword [esp + 4], 0x1d
mov edx, dword [esp + 0x74]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], edx
mov edx, dword [0x61bf60]
mov dword [esp + 0x10], edx
mov edx, dword [0x61bf5c]
mov dword [esp + 0x14], edx
call fcn.0049a380
lea edi, [esp + 0xe4]
mov esi, dword [esp + 0xa0]
call fcn.0045d09e
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], ecx
lea edi, [esp + 0xf8]
lea esi, [esp + 0xe4]
call fcn.0045d09e
lea edi, [esp + 0xd0]
lea esi, [esp + 0xf8]
call fcn.0045d09e
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x59e2a5
mov ecx, dword [esp + 0x90]
lea edi, [ecx + 0x20]
mov edx, dword [0x7e34e0]
test edx, edx
jne 0x59e45f
xor eax, eax
call fcn.0045cbbb
jmp 0x59dfec
lea eax, [0x677480]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00411f70
jmp 0x59dfec
lea edi, [edx + 0x34]
call fcn.0045c920
jmp 0x59e206
cmp edx, 8
jne 0x59dfec
mov edx, dword [esp + 0x84]
cmp dword [edx], 0x70747468
jne 0x59e4bf
cmp dword [edx + 4], 0x796c6e6f
jne 0x59e4bf
mov eax, dword [esp + 0x90]
mov byte [eax + 0x41], 1
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x59de6c
cmp dword [edx], 0x656d6173
jne 0x59dfec
cmp dword [edx + 4], 0x65746973
jne 0x59dfec
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004bae50
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
cmp ecx, 3
jne 0x59e52c
cmp word [eax], 0x616c
jne 0x59e51c
cmp byte [eax + 2], 0x78
jne 0x59e51c
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 2
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x59de6c
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 1
jmp 0x59e50c
cmp ecx, 4
jne 0x59e549
cmp dword [eax], 0x656e6f6e
jne 0x59e51c
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 4
jmp 0x59e50c
cmp ecx, 6
jne 0x59e51c
cmp dword [eax], 0x69727473
jne 0x59e51c
cmp word [eax + 4], 0x7463
jne 0x59e51c
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 3
jmp 0x59e50c
mov eax, dword [esp + 0x90]
mov edx, dword [eax + 0x54]
mov ebx, dword [eax + 0x50]
mov ebp, dword [eax + 0x58]
lea esi, [edx + 1]
mov ecx, edx
mov edx, dword [esp + 0x98]
mov edi, ebx
mov ebx, dword [edx]
mov edx, dword [edx + 4]
cmp esi, ebp
ja 0x59e5ce
lea ebp, [ecx + 1]
mov dword [eax + 0x54], ebp
lea ebp, [edi + ecx*8 + 4]
mov dword [ebp], edx
mov edx, dword [0x7e34e0]
lea edi, [edi + ecx*8]
test edx, edx
jne 0x59e5c1
mov dword [edi], ebx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x80]
jmp 0x59de6c
mov ecx, eax
mov eax, ebx
call fcn.0045c920
mov eax, ecx
jmp 0x59e5b1
mov dword [esp + 0x64], edx
mov dword [esp + 0x94], ebx
lea eax, [0x643700]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.004441e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x58], edx
mov edx, dword [0x7e34e0]
test edx, edx
jne 0x59e633
mov dword [ebx + 0x50], eax
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x94]
mov edi, eax
mov eax, dword [esp + 0x90]
jmp 0x59e595
lea edi, [ebx + 0x50]
call fcn.0045c920
jmp 0x59e61a
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x64]
xor ebx, ebx
xor edx, edx
jmp 0x59df41
mov edi, dword [esp + 0x98]
mov edx, eax
mov eax, ebp
call fcn.0045c920
mov eax, edx
mov edx, edi
jmp 0x59dedd
mov ecx, dword [esp + 0x58]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x5c]
cmp ebx, edx
jb 0x59e6a4
mov ebp, dword [esp + 0x8c]
mov esi, dword [0x7e34e0]
lea edi, [ebp + ecx*4]
test esi, esi
jne 0x59e69d
mov dword [ebp + ecx*4], eax
mov eax, ebx
mov ecx, edx
mov edx, ebp
jmp 0x59dc21
call fcn.0045c920
jmp 0x59e692
lea eax, [0x6484a0]
mov dword [esp], eax
mov ebp, dword [esp + 0x8c]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.004441e0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x58]
jmp 0x59e680
lea edi, [eax + 0x48]
mov ecx, eax
mov eax, dword [esp + 0x88]
call fcn.0045c920
mov eax, ecx
jmp 0x59de53
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0x70]
call fcn.0045c920
mov eax, ecx
jmp 0x59de34
mov edi, eax
mov eax, dword [esp + 0x7c]
call fcn.0045c920
mov eax, edi
jmp 0x59de18
mov dword [esp + 0x64], esi
mov dword [esp + 0x70], eax
mov dword [esp], ebp
mov dword [esp + 4], ecx
lea eax, [0x692824]
mov dword [esp + 8], eax
mov byte [esp + 0xc], 1
call fcn.004bb210
mov eax, dword [esp + 0x10]
test eax, eax
setl dl
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x64]
jmp 0x59dd95
call fcn.0045c920
jmp 0x59dd1c
mov dword [esp + 0x128], edi
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x130], esi
add esp, 0x120
ret
lea eax, [0x7e32f0]
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], 0
add esp, 0x120
ret
xor eax, eax
call fcn.0045c9a0
mov ecx, edx
call fcn.0045ca00
call fcn.0045c9c0
mov eax, ecx
mov ecx, ebx
call fcn.0045c9a0
mov ecx, edx
call fcn.0045ca00
call fcn.0045c9c0
xor eax, eax
call fcn.0045c9a0
nop
call fcn.0045b380
jmp fcn.0059db40