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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x138]
cmp eax, dword [ecx + 8]
jbe 0x62a5ac
sub esp, 0x1b8
mov esi, dword [esp + 0x1d0]
test byte [esi], al
lea edi, [esp + 0xd8]
call fcn.00457158
lea edi, [esp + 0x148]
mov esi, dword [esp + 0x1d0]
call fcn.00457158
xor eax, eax
xor ecx, ecx
mov edx, 1
movsd xmm0, qword [0x7c9bdc]
jmp 0x629b41
inc eax
shr ecx, 1
cmp eax, 3
ja 0x629b73
mov dword [esp + 0x78], eax
jmp 0x62a4c1
movsd xmm1, qword [esp + 0xac]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x88]
movsd xmm0, xmm1
movzx edx, byte [esp + 0x63]
test ecx, ecx
jbe 0x629b3e
dec ecx
jmp 0x629b3e
test dl, dl
jne 0x629b83
mov ebp, dword [esp + 0x1d0]
jmp 0x629c27
movsd qword [esp + 0xa4], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x94], xmm0
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
mov ecx, dword [esp + 0x1dc]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x1e0]
mov dword [esp + 8], edx
lea ebx, [esp + 0x104]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
lea ebx, [esp + 0x94]
mov dword [esp + 0x14], ebx
call fcn.006298f0
movsd xmm0, qword [esp + 0x94]
movsd xmm1, qword [esp + 0xa4]
ucomisd xmm1, xmm0
jbe 0x629c20
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x10c]
mov ebx, dword [esp + 0x110]
mov ebp, dword [esp + 0x1d0]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x34], edx
mov dword [ebp + 0x38], ebx
jmp 0x629c27
mov ebp, dword [esp + 0x1d0]
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
mov ecx, dword [esp + 0x1dc]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x1e0]
mov dword [esp + 8], edx
lea ebx, [esp + 0x104]
mov dword [esp + 0xc], ebx
lea ebx, [ebp + 0x2c]
mov dword [esp + 0x10], ebx
call fcn.00629800
mov eax, dword [esp + 0x1e8]
test byte [eax], al
mov ecx, dword [esp + 0x1d8]
mov dword [esp], ecx
mov edx, dword [esp + 0x1dc]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x1e0]
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0x1bc]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x1c0]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0x1c4]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x1c8]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x1cc]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x1d0]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], eax
lea esi, [eax + 0x28]
mov dword [esp + 0xd4], esi
mov dword [esp + 0x28], esi
lea ebp, [eax + 0x50]
mov dword [esp + 0xd0], ebp
mov dword [esp + 0x2c], ebp
call fcn.00600940
mov eax, dword [esp + 0x1d0]
movzx ecx, byte [eax + 0x14]
test cl, cl
je 0x629d08
mov ecx, 1
xor edx, edx
xor ebx, ebx
jmp 0x629d57
mov eax, dword [esp + 0x1e8]
mov ecx, dword [eax]
lea edx, [0x733f60]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x1e8]
mov edx, dword [ecx]
mov ebx, dword [esp + 0x1e4]
xor ebp, ebp
jmp 0x629d43
mov dword [eax + ebp*4], ebx
inc ebp
cmp dword [ecx], ebp
jbe 0x629d50
cmp ebp, edx
jb 0x629d3f
jmp 0x62a474
mov ecx, 0x40
mov ebx, eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0xbc], ebx
mov eax, dword [esp + 0x1e8]
imul ecx, dword [eax]
mov dword [esp + 0x70], ecx
lea ebp, [0x7477c0]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.004426a0
mov eax, dword [esp + 0xc]
nop
mov ecx, dword [esp + 0x70]
xor edx, edx
jmp 0x629dc2
lea edi, [eax + esi]
mov ecx, 0x100
mov ebp, eax
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [ebp + esi + 0x400], 0
movsd xmm0, qword [0x7c9be4]
movsd qword [ebp + esi + 0x404], xmm0
inc edx
mov eax, ebp
mov ecx, ebx
cmp edx, ecx
jae 0x629de2
mov ebx, ecx
sub ecx, edx
mov ebp, ecx
neg ecx
sar ecx, 0x1f
imul esi, edx, 0x40c
and esi, ecx
test ebp, ebp
ja 0x629d93
jmp 0x62a46b
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x1e8]
mov ecx, dword [eax + 0x50]
lea edx, [0x7475c0]
mov dword [esp], edx
shl ecx, 2
mov dword [esp + 0x80], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.004426a0
mov eax, dword [esp + 0xc]
nop
mov ecx, dword [esp + 0x80]
xor edx, edx
jmp 0x629e52
lea edi, [eax + esi]
mov ecx, 0x468
mov ebp, eax
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [ebp + esi + 0x11a0], 0
movsd xmm0, qword [0x7c9be4]
movsd qword [ebp + esi + 0x11a4], xmm0
inc edx
mov eax, ebp
mov ecx, ebx
cmp edx, ecx
jae 0x629e72
mov ebx, ecx
sub ecx, edx
mov ebp, ecx
neg ecx
sar ecx, 0x1f
imul esi, edx, 0x11ac
and esi, ecx
test ebp, ebp
ja 0x629e23
jmp 0x62a462
mov dword [esp + 0xc8], eax
mov ebx, dword [esp + 0x1e8]
mov ebp, dword [ebx + 0x28]
mov dword [ebx + 0xb4], ebp
mov edx, dword [ebx + 0xb0]
cmp edx, ebp
jl 0x629ea1
jb 0x62a45b
mov dword [ebx + 0xac], ebp
jmp 0x629f06
lea eax, [0x747640]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x1e8]
mov edx, dword [ecx + 0xb4]
mov dword [ecx + 0xac], edx
mov dword [ecx + 0xb0], edx
mov edx, dword [0x900e70]
test edx, edx
jne 0x629ee6
mov dword [ecx + 0xa8], eax
jmp 0x629ef1
lea edi, [ecx + 0xa8]
call fcn.00456ac0
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x1e8]
mov edx, dword [ebx + 0xa8]
mov dword [esp + 0xc0], edx
mov ebp, dword [ebx + 0xac]
mov esi, dword [ebx + 0xb0]
mov dword [esp + 0x74], esi
mov edi, ebx
mov ebx, dword [ebx + 0xb4]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0xb4], eax
xor eax, eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xb4]
jmp 0x629fa3
mov ebp, dword [esp + 0xc0]
lea ecx, [ebp + ebx]
mov edi, ecx
mov ecx, 0x2c0
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [ebp + ebx + 0xb00], 0
movsd xmm0, qword [0x7c9be4]
movsd qword [ebp + ebx + 0xb04], xmm0
lea ecx, [edx + 1]
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0xc8]
mov edx, ebp
mov ebp, esi
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x1e8]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x64]
cmp edx, ebx
jae 0x629fd7
cmp edx, ebp
ja 0x62a452
sub esi, edx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
imul ebx, edx, 0xb0c
and ebx, esi
mov esi, ebp
sub ebp, edx
test ebp, ebp
ja 0x629f45
jmp 0x62a449
mov edx, dword [edi + 0xa8]
mov ebx, dword [edi + 0xac]
mov ebp, dword [edi + 0xb0]
mov esi, dword [esp + 0x1d8]
mov dword [esp], esi
mov esi, dword [esp + 0x1dc]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x1e0]
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov esi, dword [esp + 0xd4]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0xd0]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x1bc]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x1c0]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x1c4]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x1c8]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x1cc]
mov dword [esp + 0x28], esi
movzx esi, byte [esp + 0x1d4]
xchg esi, eax
mov byte [esp + 0x2c], al
xchg esi, eax
movzx esi, byte [esp + 0x1d5]
xchg esi, eax
mov byte [esp + 0x2d], al
xchg esi, eax
mov esi, dword [esp + 0xbc]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0xcc]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ecx
call fcn.006282b0
mov eax, dword [esp + 0x1e8]
mov ecx, dword [eax]
shl ecx, 6
mov dword [eax + 0x84], ecx
mov edx, dword [eax + 0x80]
cmp edx, ecx
jl 0x62a0e8
jb 0x62a444
mov dword [eax + 0x7c], ecx
jmp 0x62a131
lea eax, [0x734760]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x1e8]
mov edx, dword [ecx + 0x84]
mov dword [ecx + 0x7c], edx
mov dword [ecx + 0x80], edx
mov edx, dword [0x900e70]
test edx, edx
jne 0x62a127
mov dword [ecx + 0x78], eax
jmp 0x62a12f
lea edi, [ecx + 0x78]
call fcn.00456ac0
mov eax, ecx
mov ecx, dword [eax + 0x84]
mov dword [eax + 0xa4], ecx
mov edx, dword [eax + 0xa0]
cmp edx, ecx
jl 0x62a155
jb 0x62a43f
mov dword [eax + 0x9c], ecx
jmp 0x62a1a7
lea eax, [0x7477c0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x1e8]
mov edx, dword [ecx + 0xa4]
mov dword [ecx + 0x9c], edx
mov dword [ecx + 0xa0], edx
mov edx, dword [0x900e70]
test edx, edx
jne 0x62a19a
mov dword [ecx + 0x98], eax
jmp 0x62a1a5
lea edi, [ecx + 0x98]
call fcn.00456ac0
mov eax, ecx
mov ecx, dword [0x6730ac]
mov edx, dword [eax + 0x98]
mov ebx, dword [eax + 0x9c]
mov ebp, dword [eax + 0xa0]
mov esi, dword [eax + 0x78]
mov edi, dword [eax + 0x7c]
mov dword [esp + 0x90], edi
mov edi, dword [eax + 0x80]
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0xcc]
mov dword [esp], edi
mov edi, dword [esp + 0x70]
mov dword [esp + 4], edi
mov dword [esp + 8], edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebp
lea ecx, [eax + 0xa4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x2c], ecx
call fcn.00612480
mov eax, dword [esp + 0x1d0]
movzx eax, byte [eax + 0x14]
test al, al
je 0x62a249
mov ebx, dword [esp + 0x1e8]
mov ebp, dword [ebx]
jmp 0x62a3f0
mov eax, dword [esp + 0x1e8]
mov ecx, dword [eax + 0x50]
shl ecx, 2
mov dword [eax + 0x94], ecx
mov edx, dword [eax + 0x90]
cmp edx, ecx
jl 0x62a274
jb 0x62a3e9
mov dword [eax + 0x8c], ecx
jmp 0x62a2c6
lea eax, [0x734760]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x1e8]
mov edx, dword [ecx + 0x94]
mov dword [ecx + 0x8c], edx
mov dword [ecx + 0x90], edx
mov edx, dword [0x900e70]
test edx, edx
jne 0x62a2b9
mov dword [ecx + 0x88], eax
jmp 0x62a2c4
lea edi, [ecx + 0x88]
call fcn.00456ac0
mov eax, ecx
mov ecx, dword [eax + 0x94]
mov dword [eax + 0xc4], ecx
mov edx, dword [eax + 0xc0]
cmp edx, ecx
jl 0x62a2ea
jb 0x62a3e4
mov dword [eax + 0xbc], ecx
jmp 0x62a33c
lea eax, [0x7475c0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.004426a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x1e8]
mov edx, dword [ecx + 0xc4]
mov dword [ecx + 0xbc], edx
mov dword [ecx + 0xc0], edx
mov edx, dword [0x900e70]
test edx, edx
jne 0x62a32f
mov dword [ecx + 0xb8], eax
jmp 0x62a33a
lea edi, [ecx + 0xb8]
call fcn.00456ac0
mov eax, ecx
mov ecx, dword [0x6730ac]
mov edx, dword [eax + 0x94]
mov ebx, dword [eax + 0xb8]
mov ebp, dword [eax + 0xbc]
mov esi, dword [eax + 0xc0]
mov edi, dword [eax + 0x88]
mov dword [esp + 0xc4], edi
mov edi, dword [eax + 0x8c]
mov dword [esp + 0x90], edi
mov edi, dword [eax + 0x90]
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0xc8]
mov dword [esp], edi
mov edi, dword [esp + 0x80]
mov dword [esp + 4], edi
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], esi
add eax, 0xc4
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x2c], eax
call fcn.00610c70
add esp, 0x1b8
ret
call fcn.00456b90
call fcn.00456b90
mov ebp, eax
test ebp, ebp
je 0x62a249
mov dword [esp + 0x68], ebp
lea eax, [ebp - 1]
xor ecx, ecx
jmp 0x62a40f
mov dword [edi + eax*4], ebp
inc ecx
mov ebp, dword [esp + 0x68]
mov eax, esi
mov ebx, edx
cmp ecx, 0x40
jae 0x62a3ee
mov esi, eax
shl eax, 6
add eax, ecx
mov edi, dword [ebx + 0x78]
mov edx, ebx
mov ebx, dword [ebx + 0x7c]
cmp ebx, esi
jbe 0x62a436
mov ebp, dword [edi + ebp*4 - 4]
cmp ebx, eax
ja 0x62a403
mov ecx, ebx
call fcn.00456b50
mov eax, esi
mov ecx, ebx
call fcn.00456b50
call fcn.00456b90
call fcn.00456b90
xor eax, eax
mov ecx, eax
call fcn.00456b40
mov eax, edx
mov ecx, ebp
call fcn.00456bb0
mov ecx, ebp
call fcn.00456b90
xor eax, eax
mov ecx, eax
call fcn.00456b40
xor eax, eax
mov ecx, eax
call fcn.00456b40
mov eax, ebp
mov ecx, edx
call fcn.00456b50
mov ebx, dword [esp + 0x174]
mov ebp, dword [esp + 0x178]
mov esi, dword [esp + 0x17c]
mov edi, dword [esp + 0x180]
mov eax, edi
mov edi, dword [esp + 0x1d0]
mov dword [edi + 0x2c], ebx
mov dword [edi + 0x30], ebp
mov dword [edi + 0x34], esi
mov dword [edi + 0x38], eax
mov ebx, dword [esp + 0x88]
lea ecx, [ebx + 1]
mov eax, dword [esp + 0x78]
movzx edx, byte [esp + 0x63]
cmp ecx, 0x10
jae 0x629b6c
mov dword [esp + 0x88], ecx
movsd qword [esp + 0xac], xmm0
mov byte [esp + 0x62], dl
xorps xmm0, xmm0
movsd qword [esp + 0x9c], xmm0
lea edx, [esp + 0x148]
mov dword [esp], edx
mov dword [esp + 4], eax
mov ebx, ecx
mov ecx, eax
shl ebx, cl
mov dword [esp + 0x84], ebx
mov dword [esp + 8], ebx
call fcn.006296c0
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x104], eax
jne 0x62a52f
mov ecx, dword [esp + 0x84]
cmp dword [esp + 0x108], ecx
jne 0x62a52f
xor ecx, ecx
jmp 0x62a534
movzx ecx, byte [esp + 0x62]
mov byte [esp + 0x63], cl
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
mov edx, dword [esp + 0x1dc]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x1e0]
mov dword [esp + 8], ebx
lea ebp, [esp + 0x104]
mov dword [esp + 0xc], ebp
lea ebp, [esp + 0x174]
mov dword [esp + 0x10], ebp
lea ebp, [esp + 0x9c]
mov dword [esp + 0x14], ebp
call fcn.006298f0
movzx eax, byte [esp + 0x18]
test al, al
je 0x629b4f
movsd xmm0, qword [esp + 0x9c]
movsd xmm1, qword [esp + 0xac]
ucomisd xmm0, xmm1
jbe 0x62a47d
jmp 0x629b58
call fcn.00455690
jmp fcn.00629ae0