Function at 0x629b30
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 0x62a5f9
sub esp, 0x1b8
mov esi, dword [esp + 0x1d0]
test byte [esi], al
lea edi, [esp + 0x148]
call fcn.00457158
lea edi, [esp + 0xd8]
mov esi, dword [esp + 0x1d0]
call fcn.00457158
xor eax, eax
xor ecx, ecx
mov edx, 1
movsd xmm0, qword [0x7c9e64]
jmp 0x629b91
inc eax
shr ecx, 1
cmp eax, 3
ja 0x629bc0
mov dword [esp + 0x68], eax
jmp 0x62a517
movsd xmm1, qword [esp + 0xac]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x78]
movsd xmm0, xmm1
movzx edx, byte [esp + 0x63]
test ecx, ecx
jbe 0x629b8e
dec ecx
jmp 0x629b8e
test dl, dl
jne 0x629bd0
mov ebp, dword [esp + 0x1d0]
jmp 0x629c74
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 + 0x174]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
lea ebx, [esp + 0x94]
mov dword [esp + 0x14], ebx
call fcn.00629940
movsd xmm0, qword [esp + 0x94]
movsd xmm1, qword [esp + 0xa4]
ucomisd xmm1, xmm0
jbe 0x629c6d
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
mov ebx, dword [esp + 0x180]
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 0x629c74
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 + 0x174]
mov dword [esp + 0xc], ebx
lea ebx, [ebp + 0x2c]
mov dword [esp + 0x10], ebx
call fcn.00629850
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.006008e0
mov eax, dword [esp + 0x1d0]
movzx ecx, byte [eax + 0x14]
test cl, cl
je 0x629d55
mov ecx, 1
xor edx, edx
xor ebx, ebx
jmp 0x629da4
mov eax, dword [esp + 0x1e8]
mov ecx, dword [eax]
lea edx, [0x734020]
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 0x629d90
mov dword [eax + ebp*4], ebx
inc ebp
cmp dword [ecx], ebp
jbe 0x629d9d
cmp ebp, edx
jb 0x629d8c
jmp 0x62a4cd
mov ecx, 0x40
mov ebx, eax
mov dword [esp + 0x7c], edx
mov dword [esp + 0xc0], ebx
mov eax, dword [esp + 0x1e8]
imul ecx, dword [eax]
mov dword [esp + 0x80], ecx
lea ebp, [0x749400]
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 + 0x80]
xor edx, edx
jmp 0x629e15
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 [0x7c9e6c]
movsd qword [ebp + esi + 0x404], xmm0
inc edx
mov eax, ebp
mov ecx, ebx
cmp edx, ecx
jae 0x629e35
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 0x629de6
jmp 0x62a4c4
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x1e8]
mov ecx, dword [eax + 0x50]
lea edx, [0x749280]
mov dword [esp], edx
shl ecx, 2
mov dword [esp + 0x70], ecx
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 0x629e9f
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 [0x7c9e6c]
movsd qword [ebp + esi + 0x11a4], xmm0
inc edx
mov eax, ebp
mov ecx, ebx
cmp edx, ecx
jae 0x629ebf
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 0x629e70
jmp 0x62a4bb
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 0x629eee
jb 0x62a4b4
mov dword [ebx + 0xac], ebp
jmp 0x629f50
lea eax, [0x749380]
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 [0x901e80]
test edx, edx
jne 0x629f33
mov dword [ecx + 0xa8], eax
jmp 0x629f3e
lea edi, [ecx + 0xa8]
call fcn.00456ac0
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x1e8]
mov edx, dword [ebx + 0xa8]
mov dword [esp + 0xbc], 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 + 0x6c], ebx
mov dword [esp + 0xb4], eax
xor eax, eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xb4]
jmp 0x629ff0
mov ebp, dword [esp + 0xbc]
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 [0x7c9e6c]
movsd qword [ebp + ebx + 0xb04], xmm0
lea ecx, [edx + 1]
mov ebx, dword [esp + 0x6c]
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 + 0x84], ecx
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x84]
cmp edx, ebx
jae 0x62a027
cmp edx, ebp
ja 0x62a4ab
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 0x629f92
jmp 0x62a4a2
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 + 0xc0]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0xcc]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x80]
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.00628300
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 0x62a13b
jb 0x62a49d
mov dword [eax + 0x7c], ecx
jmp 0x62a184
lea eax, [0x7347e0]
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 [0x901e80]
test edx, edx
jne 0x62a17a
mov dword [ecx + 0x78], eax
jmp 0x62a182
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 0x62a1a8
jb 0x62a498
mov dword [eax + 0x9c], ecx
jmp 0x62a1fa
lea eax, [0x749400]
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 [0x901e80]
test edx, edx
jne 0x62a1ed
mov dword [ecx + 0x98], eax
jmp 0x62a1f8
lea edi, [ecx + 0x98]
call fcn.00456ac0
mov eax, ecx
mov ecx, dword [0x673104]
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 + 0x80]
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.006124b0
mov eax, dword [esp + 0x1d0]
movzx eax, byte [eax + 0x14]
test al, al
je 0x62a29f
mov ebx, dword [esp + 0x1e8]
mov ebp, dword [ebx]
jmp 0x62a443
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 0x62a2ca
jb 0x62a43c
mov dword [eax + 0x8c], ecx
jmp 0x62a31c
lea eax, [0x7347e0]
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 [0x901e80]
test edx, edx
jne 0x62a30f
mov dword [ecx + 0x88], eax
jmp 0x62a31a
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 0x62a340
jb 0x62a437
mov dword [eax + 0xbc], ecx
jmp 0x62a392
lea eax, [0x749280]
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 [0x901e80]
test edx, edx
jne 0x62a385
mov dword [ecx + 0xb8], eax
jmp 0x62a390
lea edi, [ecx + 0xb8]
call fcn.00456ac0
mov eax, ecx
mov ecx, dword [0x673104]
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 + 0x70]
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.00610ca0
add esp, 0x1b8
ret
call fcn.00456b90
call fcn.00456b90
mov ebp, eax
test ebp, ebp
je 0x62a29f
mov dword [esp + 0x88], ebp
lea eax, [ebp - 1]
xor ecx, ecx
jmp 0x62a468
mov dword [edi + eax*4], ebp
inc ecx
mov ebp, dword [esp + 0x88]
mov eax, esi
mov ebx, edx
cmp ecx, 0x40
jae 0x62a441
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 0x62a48f
mov ebp, dword [edi + ebp*4 - 4]
cmp ebx, eax
ja 0x62a459
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 + 0x104]
mov ebp, dword [esp + 0x108]
mov esi, dword [esp + 0x10c]
mov edi, dword [esp + 0x110]
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 + 0x78]
lea ecx, [ebx + 1]
mov eax, dword [esp + 0x68]
movzx edx, byte [esp + 0x63]
cmp ecx, 0x10
jae 0x629bb9
mov dword [esp + 0x78], ecx
movsd qword [esp + 0xac], xmm0
mov byte [esp + 0x62], dl
xorps xmm0, xmm0
movsd qword [esp + 0x9c], xmm0
lea edx, [esp + 0xd8]
mov dword [esp], edx
mov dword [esp + 4], eax
mov ebx, ecx
mov ecx, eax
shl ebx, cl
mov dword [esp + 0x64], ebx
mov dword [esp + 8], ebx
call fcn.00629710
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x174], eax
jne 0x62a57c
mov ecx, dword [esp + 0x64]
cmp dword [esp + 0x178], ecx
jne 0x62a57c
xor ecx, ecx
jmp 0x62a581
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 + 0x174]
mov dword [esp + 0xc], ebp
lea ebp, [esp + 0x104]
mov dword [esp + 0x10], ebp
lea ebp, [esp + 0x9c]
mov dword [esp + 0x14], ebp
call fcn.00629940
movzx eax, byte [esp + 0x18]
test al, al
je 0x629b9f
movsd xmm0, qword [esp + 0x9c]
movsd xmm1, qword [esp + 0xac]
ucomisd xmm0, xmm1
jbe 0x62a4d6
jmp 0x629ba8
call fcn.00455690
jmp fcn.00629b30