Function at 0x639bf0
Capabilities:
Check os version
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x7d2f2f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c4
mov eax, dword [0x9ea1d4]
push ebx
mov ebx, dword [esp + 0x1dc]
push ebp
push esi
lea esi, [eax + 0x4c8]
lea ebp, [eax + 0x84c]
mov eax, dword [ebx]
push edi
mov edi, ecx
cmp eax, 0x77ae7
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], esi
je 0x639c4c
cmp eax, 0x77ae8
je 0x639c4c
cmp eax, 0x77ae9
jne 0x639ce9
push 1
mov ecx, edi
call fcn.006399a0
test al, al
jne 0x639ce9
push 4
mov ecx, edi
call fcn.006399a0
test al, al
jne 0x639ce9
push 0xa
mov ecx, edi
call fcn.006399a0
test al, al
jne 0x639ce9
push 0xd
mov ecx, edi
call fcn.006399a0
test al, al
jne 0x639ce9
push 0xc
mov ecx, edi
call fcn.006399a0
test al, al
jne 0x639ce9
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
call fcn.00404e60
lea ecx, [esp + 0x14]
mov dword [esp + 0x1dc], 0
push ecx
push 0x3b30
call fcn.00709cc0
mov ecx, dword [edi + 0x18]
add esp, 8
lea edx, [esp + 0x14]
push 0xffff3b3b
push edx
call fcn.006b8210
mov dword [esp + 0x1dc], 0xffffffff
push 1
lea ecx, [esp + 0x18]
jmp 0x63bd08
mov eax, dword [esi + 0x20]
push eax
call fcn.00709e50
mov ecx, dword [ebx + 0x64]
add esp, 4
test ecx, ecx
mov esi, eax
je 0x639fab
test esi, esi
jne 0x639db1
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edx, 0x65
je 0x639fab
cmp edx, 0x69
je 0x639fab
cmp edx, 0x6a
je 0x639fab
cmp edx, 0xc9
je 0x639fab
cmp edx, 0xcd
je 0x639fab
cmp edx, 0xce
je 0x639fab
mov dl, byte [esp + 0x13]
push esi
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], dl
call fcn.00404e60
lea eax, [esp + 0x14]
mov dword [esp + 0x1dc], 1
push eax
push 0xfa3
call fcn.00709cc0
add esp, 8
lea ecx, [esp + 0x14]
push 0xffffff00
push ecx
mov ecx, dword [edi + 0x18]
call fcn.006b8210
mov dword [esp + 0x1dc], 0xffffffff
push 1
lea ecx, [esp + 0x18]
jmp 0x63bd08
cmp esi, 1
jne 0x639e61
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 0x66
je 0x639fab
cmp edx, 0x6b
je 0x639fab
cmp edx, 0x6c
je 0x639fab
cmp edx, 0xca
je 0x639fab
cmp edx, 0xcf
je 0x639fab
cmp edx, 0xd0
je 0x639fab
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x18], cl
lea ecx, [esp + 0x18]
call fcn.00404e60
lea edx, [esp + 0x14]
mov dword [esp + 0x1dc], 2
push edx
push 0xfa3
call fcn.00709cc0
mov ecx, dword [edi + 0x18]
add esp, 8
lea eax, [esp + 0x14]
push 0xffffff00
push eax
call fcn.006b8210
mov dword [esp + 0x1dc], 0xffffffff
push esi
lea ecx, [esp + 0x18]
jmp 0x63bd08
cmp esi, 2
jne 0x639f12
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edx, 0x67
je 0x639fab
cmp edx, 0x6d
je 0x639fab
cmp edx, 0x6e
je 0x639fab
cmp edx, 0xcb
je 0x639fab
cmp edx, 0xd1
je 0x639fab
cmp edx, 0xd2
je 0x639fab
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], dl
call fcn.00404e60
lea eax, [esp + 0x14]
mov dword [esp + 0x1dc], 3
push eax
push 0xfa3
call fcn.00709cc0
add esp, 8
lea ecx, [esp + 0x14]
push 0xffffff00
push ecx
mov ecx, dword [edi + 0x18]
call fcn.006b8210
mov dword [esp + 0x1dc], 0xffffffff
push 1
lea ecx, [esp + 0x18]
jmp 0x63bd08
cmp esi, 3
jne 0x639fab
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 0x68
je 0x639fab
cmp edx, 0x70
je 0x639fab
cmp edx, 0x6f
je 0x639fab
cmp edx, 0xcc
je 0x639fab
cmp edx, 0xd3
je 0x639fab
cmp edx, 0xd4
je 0x639fab
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x18], cl
lea ecx, [esp + 0x18]
call fcn.00404e60
lea edx, [esp + 0x14]
mov dword [esp + 0x1dc], 4
push edx
push 0xfa3
call fcn.00709cc0
mov ecx, dword [edi + 0x18]
add esp, 8
lea eax, [esp + 0x14]
push 0xffffff00
push eax
call fcn.006b8210
mov dword [esp + 0x1dc], 0xffffffff
push 1
lea ecx, [esp + 0x18]
jmp 0x63bd08
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebx + 0x68]
cmp ecx, eax
jge 0x63a02c
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], dl
call fcn.00404e60
cmp esi, 3
mov dword [esp + 0x1dc], 5
je 0x639ff2
cmp esi, 2
je 0x639ff2
test esi, esi
je 0x639fe6
cmp esi, 1
jne 0x63a004
lea eax, [esp + 0x14]
push eax
push 0xfa8
jmp 0x639ffc
lea ecx, [esp + 0x14]
push ecx
push 0xbbc
call fcn.00709cc0
add esp, 8
mov ecx, dword [edi + 0x18]
lea edx, [esp + 0x14]
push 0xffffff00
push edx
call fcn.006b8210
mov dword [esp + 0x1dc], 0xffffffff
push 1
lea ecx, [esp + 0x18]
jmp 0x63bd08
mov edx, dword [0x9ea1d4]
or ebp, 0xffffffff
mov esi, ebp
mov al, byte [edx + 0x4fc]
test al, al
je 0x63a078
cmp dword [edx + 0x500], ebp
je 0x63a078
mov eax, dword [0x9eba88]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x63a09f
push 6
call fcn.004c5180
mov ecx, dword [0x9eba88]
push 8
mov ebp, eax
mov ecx, dword [ecx + 0x3c]
call fcn.004c5180
mov edx, dword [0x9ea1d4]
mov esi, eax
jmp 0x63a09f
mov eax, dword [edx + 0x2d4]
test eax, eax
je 0x63a089
xor ecx, ecx
mov cl, byte [eax + 0x40]
mov ebp, ecx
mov eax, dword [edx + 0x2d0]
test eax, eax
je 0x63a09c
xor ecx, ecx
mov cl, byte [eax + 0x40]
mov esi, ecx
jmp 0x63a09f
or esi, 0xffffffff
test ebx, ebx
je 0x63a28b
mov ecx, dword [ebx + 0x8c]
mov eax, 6
cmp ecx, eax
je 0x63a0c2
cmp dword [ebx + 0x90], eax
jne 0x63a28b
mov al, byte [edx + 0x4fc]
test al, al
jne 0x63a28b
cmp dword [edx + 0x500], 0xffffffff
jne 0x63a28b
mov eax, dword [esp + 0x28]
mov edx, dword [ebx]
mov dword [esp + 0x24], edx
lea ecx, [esp + 0x24]
mov edi, dword [eax + 0x2c]
lea edx, [esp + 0x34]
push ecx
push edx
lea ecx, [edi + 0x14]
call fcn.00482ef0
mov edi, dword [edi + 0x18]
mov eax, dword [esp + 0x34]
cmp eax, edi
je 0x63a28b
add eax, 0x10
test eax, eax
je 0x63a28b
mov eax, dword [eax + 0x28]
cmp eax, 0xa28
je 0x63a12b
cmp eax, 0x65f
jne 0x63a28b
cmp ebp, 0xffffffff
jne 0x63a138
cmp esi, ebp
je 0x63a28b
mov eax, 0x66666667
imul ebp
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 7
je 0x63a28b
mov eax, 0x66666667
imul esi
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edx, 7
je 0x63a28b
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x4c], dl
call fcn.00404e60
lea eax, [esp + 0x48]
mov dword [esp + 0x1dc], 6
push eax
push 0xfa4
call fcn.00709cc0
mov cl, byte [0x870c08]
xor eax, eax
mov byte [esp + 0xdc], cl
mov ecx, 0x3f
lea edi, [esp + 0xdd]
add esp, 8
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebx + 0x18]
test eax, eax
jne 0x63a1c8
mov eax, 0x7e5658
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jne 0x63a1d5
mov ecx, 0x7e5658
push eax
lea edx, [esp + 0xd8]
push ecx
push edx
call fcn.007a3155
mov al, byte [esp + 0x1f]
add esp, 0xc
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], al
push 0
call fcn.00404e60
lea edi, [esp + 0xd4]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x18]
push ebp
call fcn.00401b40
test al, al
je 0x63a244
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0xd4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [eax + ebp], 0
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x14]
push 0xffff3b3b
push ecx
mov ecx, dword [edx + 0x18]
mov byte [esp + 0x1e4], 7
call fcn.006b8210
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x1e0], 6
call fcn.00404e60
mov dword [esp + 0x1dc], 0xffffffff
push 1
lea ecx, [esp + 0x4c]
jmp 0x63bd08
mov ecx, dword [esp + 0x30]
mov eax, dword [ebx + 0x6c]
cmp dword [ecx + 0x2c], eax
jge 0x63a2fa
cmp eax, 0x2710
jge 0x63a2fa
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], dl
call fcn.00404e60
lea eax, [esp + 0x14]
mov dword [esp + 0x1dc], 8
push eax
push 0xfa6
call fcn.00709cc0
mov edx, dword [esp + 0x30]
add esp, 8
lea ecx, [esp + 0x14]
push 0xffffff00
push ecx
mov ecx, dword [edx + 0x18]
call fcn.006b8210
mov dword [esp + 0x1dc], 0xffffffff
push 1
lea ecx, [esp + 0x18]
jmp 0x63bd08
mov eax, 0x66666667
mov ebx, 9
imul ebp
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x66666667
mov edi, edx
imul esi
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ebp, edx
mov edx, dword [esp + 0x1e8]
mov eax, dword [edx + 0x70]
cmp eax, ebx
je 0x63a397
test eax, eax
je 0x63a397
cmp eax, edi
je 0x63a397
cmp eax, ebp
je 0x63a397
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
call fcn.00404e60
lea ecx, [esp + 0x14]
mov dword [esp + 0x1dc], ebx
push ecx
push 0xfa5
call fcn.00709cc0
mov eax, dword [esp + 0x30]
add esp, 8
lea edx, [esp + 0x14]
mov ecx, dword [eax + 0x18]
push 0xffffff00
push edx
call fcn.006b8210
mov dword [esp + 0x1dc], 0xffffffff
push 1
lea ecx, [esp + 0x18]
jmp 0x63bd08
mov ecx, dword [0x9eba88]
push 6
mov ecx, dword [ecx + 0x3c]
call fcn.004c51b0
mov edx, dword [0x9eba88]
push 8
mov esi, eax
mov ecx, dword [edx + 0x3c]
call fcn.004c51b0
mov ecx, dword [esp + 0x1e8]
mov edx, dword [ecx + 0x8c]
cmp edx, 2
mov edx, ecx
je 0x63a3d6
cmp dword [edx + 0x90], 2
jne 0x63a3ed
cmp esi, 0xa15cd68
je 0x63bcb1
cmp eax, 0xa15cd68
je 0x63bcb1
mov ecx, dword [edx]
cmp ecx, 0x77a73
je 0x63a3ff
cmp ecx, 0x77a74
jne 0x63a47e
cmp esi, 0xa15cd68
je 0x63a47e
cmp eax, 0xa15cd68
je 0x63a47e
cmp edi, 7
je 0x63a422
cmp edi, 8
je 0x63a422
cmp ebp, 7
je 0x63a422
cmp ebp, 8
jne 0x63a47e
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], dl
call fcn.00404e60
lea eax, [esp + 0x14]
mov dword [esp + 0x1dc], 0xb
push eax
push 0xfa5
call fcn.00709cc0
mov edx, dword [esp + 0x30]
add esp, 8
lea ecx, [esp + 0x14]
push 0xffffff00
push ecx
mov ecx, dword [edx + 0x18]
call fcn.006b8210
mov dword [esp + 0x1dc], 0xffffffff
push 1
lea ecx, [esp + 0x18]
jmp 0x63bd08
cmp ecx, 0x77a31
jne 0x63a4f1
cmp esi, 0xa15cd68
je 0x63a495
cmp eax, 0xa15cd68
jne 0x63a4f1
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
call fcn.00404e60
lea ecx, [esp + 0x14]
mov dword [esp + 0x1dc], 0xc
push ecx
push 0xfa5
call fcn.00709cc0
mov eax, dword [esp + 0x30]
add esp, 8
lea edx, [esp + 0x14]
mov ecx, dword [eax + 0x18]
push 0xffffff00
push edx
call fcn.006b8210
mov dword [esp + 0x1dc], 0xffffffff
push 1
lea ecx, [esp + 0x18]
jmp 0x63bd08
cmp dword [edx + 0x70], ebx
je 0x63a561
mov ecx, dword [0x9ea1d4]
call fcn.004807b0
test al, al
jne 0x63a561
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x18], cl
lea ecx, [esp + 0x18]
call fcn.00404e60
lea edx, [esp + 0x14]
mov dword [esp + 0x1dc], 0xd
push edx
push 0x1dea
call fcn.00709cc0
mov ecx, dword [esp + 0x30]
add esp, 8
lea eax, [esp + 0x14]
mov ecx, dword [ecx + 0x18]
push 0xffffff00
push eax
call fcn.006b8210
mov dword [esp + 0x1dc], 0xffffffff
push 1
lea ecx, [esp + 0x18]
jmp 0x63bd08
mov edx, dword [esp + 0x1e8]
xor ebp, ebp
mov eax, dword [edx + 0x38]
cmp eax, ebp
je case.default.0x63a57f
dec eax
cmp eax, 3
ja case.default.0x63a57f
jmp dword [eax*4 + 0x63bd2c]
mov esi, dword [0x9ea098]
lea eax, [esp + 0x30]
lea ecx, [esp + 0x24]
push eax
push ecx
lea ecx, [esi + 0x14]
xor edi, edi
mov dword [esp + 0x38], 0x1697fb38
call fcn.00464b00
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x24]
cmp eax, esi
je 0x63a6a0
add eax, 0x10
cmp eax, ebp
je 0x63a6a0
mov al, byte [eax + 4]
cmp al, 0x2b
jae 0x63a5fd
and eax, 0xff
lea edx, [esp + 0x30]
push edx
mov dword [esp + 0x34], ebp
mov esi, dword [eax*4 + 0x9ea09c]
lea eax, [esp + 0x28]
push eax
lea ecx, [esi + 0x14]
call fcn.00464b70
mov esi, dword [esi + 0x18]
mov edi, dword [esp + 0x24]
cmp edi, esi
jne 0x63a5fa
xor edi, edi
jmp 0x63a5fd
add edi, 0x10
cmp edi, ebp
je 0x63a6a0
mov ebx, dword [esp + 0x28]
push 0x1697fb38
mov ecx, dword [ebx + 0x18]
mov ecx, dword [ecx + 0x3c]
call fcn.004c25b0
cmp eax, 1
jge 0x63a9cd
mov dl, byte [esp + 0x13]
mov dword [esp + 0x18], ebp
mov byte [esp + 0x14], dl
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
lea eax, [esp + 0x14]
mov dword [esp + 0x1dc], 0xe
push eax
push 0x1db6
call fcn.00709cc0
add esp, 8
lea ecx, [esp + 0x14]
push 0xffffff00
push ecx
mov ecx, dword [ebx + 0x18]
call fcn.006b8210
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1dc], 0xffffffff
cmp ecx, ebp
je case.0x63adb0.102
mov al, byte [ecx - 1]
test al, al
je 0x63a691
cmp al, 0xff
je 0x63a691
dec al
mov byte [ecx - 1], al
jmp case.0x63adb0.102
dec ecx
push ecx
call fcn.007a02e0
add esp, 4
jmp case.0x63adb0.102
push 0x1697fb38
push 0x82c6d8
call fcn.0045afa0
add esp, 8
jmp case.0x63adb0.102
mov esi, dword [0x9ea098]
lea edx, [esp + 0x30]
lea eax, [esp + 0x24]
push edx
push eax
lea ecx, [esi + 0x14]
xor edi, edi
mov dword [esp + 0x38], 0x1697ff20
call fcn.00464b00
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x24]
cmp eax, esi
je 0x63a7a6
add eax, 0x10
cmp eax, ebp
je 0x63a7a6
mov al, byte [eax + 4]
cmp al, 0x2b
jae 0x63a72e
and eax, 0xff
lea ecx, [esp + 0x30]
lea edx, [esp + 0x24]
push ecx
mov esi, dword [eax*4 + 0x9ea09c]
push edx
mov dword [esp + 0x38], ebp
lea ecx, [esi + 0x14]
call fcn.00464b70
mov esi, dword [esi + 0x18]
mov edi, dword [esp + 0x24]
cmp edi, esi
jne 0x63a72b
xor edi, edi
jmp 0x63a72e
add edi, 0x10
cmp edi, ebp
je 0x63a7a6
mov ebx, dword [esp + 0x28]
push 0x1697ff20
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax + 0x3c]
call fcn.004c25b0
cmp eax, 1
jge 0x63a9cd
mov cl, byte [esp + 0x13]
mov dword [esp + 0x18], ebp
mov byte [esp + 0x14], cl
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
lea edx, [esp + 0x14]
mov dword [esp + 0x1dc], 0xf
push edx
push 0x1db7
call fcn.00709cc0
mov ecx, dword [ebx + 0x18]
add esp, 8
lea eax, [esp + 0x14]
push 0xffffff00
push eax
call fcn.006b8210
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1dc], 0xffffffff
jmp 0x63a674
push 0x1697ff20
push 0x82c6d8
call fcn.0045afa0
add esp, 8
jmp case.0x63adb0.102
mov esi, dword [0x9ea098]
lea ecx, [esp + 0x30]
lea edx, [esp + 0x24]
push ecx
push edx
lea ecx, [esi + 0x14]
xor edi, edi
mov dword [esp + 0x38], 0x16980308
call fcn.00464b00
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x24]
cmp eax, esi
je 0x63a8ae
add eax, 0x10
cmp eax, ebp
je 0x63a8ae
mov al, byte [eax + 4]
cmp al, 0x2b
jae 0x63a834
and eax, 0xff
lea ecx, [esp + 0x24]
mov dword [esp + 0x30], ebp
mov esi, dword [eax*4 + 0x9ea09c]
lea eax, [esp + 0x30]
push eax
push ecx
lea ecx, [esi + 0x14]
call fcn.00464b70
mov esi, dword [esi + 0x18]
mov edi, dword [esp + 0x24]
cmp edi, esi
jne 0x63a831
xor edi, edi
jmp 0x63a834
add edi, 0x10
cmp edi, ebp
je 0x63a8ae
mov ebx, dword [esp + 0x28]
push 0x16980308
mov edx, dword [ebx + 0x18]
mov ecx, dword [edx + 0x3c]
call fcn.004c25b0
cmp eax, 1
jge 0x63a9cd
mov al, byte [esp + 0x13]
mov dword [esp + 0x18], ebp
mov byte [esp + 0x14], al
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
lea ecx, [esp + 0x14]
mov dword [esp + 0x1dc], 0x10
push ecx
push 0x1db8
call fcn.00709cc0
mov ecx, dword [ebx + 0x18]
add esp, 8
lea edx, [esp + 0x14]
push 0xffffff00
push edx
call fcn.006b8210
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1dc], 0xffffffff
cmp ecx, ebp
jmp 0x63bb6f
push 0x16980308
push 0x82c6d8
call fcn.0045afa0
add esp, 8
jmp case.0x63adb0.102
mov esi, dword [0x9ea098]
lea eax, [esp + 0x30]
lea ecx, [esp + 0x24]
push eax
push ecx
lea ecx, [esi + 0x14]
xor edi, edi
mov dword [esp + 0x38], 0x169806f0
call fcn.00464b00
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x24]
cmp eax, esi
je 0x63a9b2
add eax, 0x10
cmp eax, ebp
je 0x63a9b2
mov al, byte [eax + 4]
cmp al, 0x2b
jae 0x63a93c
and eax, 0xff
lea edx, [esp + 0x30]
push edx
mov dword [esp + 0x34], ebp
mov esi, dword [eax*4 + 0x9ea09c]
lea eax, [esp + 0x28]
push eax
lea ecx, [esi + 0x14]
call fcn.00464b70
mov esi, dword [esi + 0x18]
mov edi, dword [esp + 0x24]
cmp edi, esi
jne 0x63a939
xor edi, edi
jmp 0x63a93c
add edi, 0x10
cmp edi, ebp
je 0x63a9b2
mov ebx, dword [esp + 0x28]
push 0x169806f0
mov ecx, dword [ebx + 0x18]
mov ecx, dword [ecx + 0x3c]
call fcn.004c25b0
cmp eax, 1
jge 0x63a9cd
mov dl, byte [esp + 0x13]
mov dword [esp + 0x18], ebp
mov byte [esp + 0x14], dl
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
lea eax, [esp + 0x14]
mov dword [esp + 0x1dc], 0x11
push eax
push 0x1db9
call fcn.00709cc0
add esp, 8
lea ecx, [esp + 0x14]
push 0xffffff00
push ecx
mov ecx, dword [ebx + 0x18]
call fcn.006b8210
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1dc], 0xffffffff
cmp ecx, ebp
jmp 0x63bb6f
push 0x169806f0
push 0x82c6d8
call fcn.0045afa0
add esp, 8
jmp case.0x63adb0.102
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x1e8]
mov ecx, dword [edx + 0x74]
cmp ecx, ebp
jbe 0x63afd9
cmp ecx, 0x16972c30
je 0x63afd9
mov eax, 0x10624dd3
mov esi, dword [0x9ea098]
mul ecx
shr edx, 6
lea ecx, [esp + 0x30]
xor edi, edi
lea eax, [edx + edx*4]
lea edx, [esp + 0x64]
push ecx
push edx
lea eax, [eax + eax*4]
lea ecx, [esi + 0x14]
mov dword [esp + 0x3c], edi
lea eax, [eax + eax*4]
shl eax, 3
mov dword [esp + 0x38], eax
call fcn.00464b00
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x64]
cmp eax, esi
je 0x63afbc
add eax, 0x10
cmp eax, ebp
mov dword [esp + 0x24], eax
je 0x63afbc
mov cl, byte [eax + 4]
cmp cl, 0x2b
jae 0x63aa91
mov eax, dword [esp + 0x1e8]
xor edx, edx
mov esi, 0x3e8
and ecx, 0xff
mov eax, dword [eax + 0x74]
div esi
mov esi, dword [ecx*4 + 0x9ea09c]
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esi + 0x14]
mov dword [esp + 0x6c], edx
lea edx, [esp + 0x70]
push edx
call fcn.00464b70
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x6c]
cmp eax, esi
je 0x63aa8d
lea edi, [eax + 0x10]
mov dword [esp + 0x34], edi
cmp edi, ebp
je 0x63afbc
mov esi, dword [esp + 0x1e8]
mov ecx, dword [ebx + 0x18]
mov eax, dword [esi + 0x74]
mov ecx, dword [ecx + 0x3c]
push eax
call fcn.004c25b0
mov edx, dword [esp + 0x34]
mov ebp, eax
mov eax, 0x55e63b89
mul dword [edx + 0x14]
mov eax, dword [esi + 0x8c]
mov edi, edx
shr edi, 0x19
cmp eax, 2
je 0x63ac70
mov ecx, dword [esi + 0x90]
cmp ecx, 2
je 0x63ac70
test esi, esi
je 0x63abdf
mov edx, dword [esp + 0x1e8]
mov esi, 0x16b59d28
cmp dword [edx + 0x38], esi
jne 0x63ab11
cmp eax, 6
je 0x63ab03
cmp ecx, 6
jne 0x63ab11
mov eax, dword [ebx + 0x18]
push esi
mov ecx, dword [eax + 0x3c]
call fcn.004c25b0
mov ebp, eax
mov ecx, dword [esp + 0x1e8]
cmp dword [ecx + 0x38], esi
je 0x63abdf
mov edx, ecx
cmp dword [edx + 0x74], 0x16987838
jne 0x63abdf
mov eax, edx
mov ecx, 6
cmp dword [eax + 0x8c], ecx
je 0x63ab4b
cmp dword [eax + 0x90], ecx
jne 0x63abdf
mov eax, dword [esp + 0x1e8]
mov esi, dword [ebx + 0x2c]
lea edx, [esp + 0x38]
mov ecx, dword [eax]
lea eax, [esp + 0x2c]
mov dword [esp + 0x38], ecx
push edx
push eax
lea ecx, [esi + 0x14]
call fcn.00482ef0
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x2c]
cmp eax, esi
je 0x63abdf
add eax, 0x10
test eax, eax
je 0x63abdf
cmp dword [eax + 0x74], ebp
jle 0x63abdf
mov cl, byte [esp + 0x13]
xor esi, esi
mov byte [esp + 0x14], cl
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
lea edx, [esp + 0x14]
mov dword [esp + 0x1dc], 0x13
push edx
push 0x1dca
call fcn.00709cc0
mov ecx, dword [ebx + 0x18]
add esp, 8
lea eax, [esp + 0x14]
push 0xffffff00
push eax
call fcn.006b8210
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1dc], 0xffffffff
cmp ecx, esi
jmp 0x63bb6f
cmp edi, 2
je 0x63ad29
cmp edi, 3
jne 0x63ac0c
mov ecx, dword [esp + 0x34]
mov al, byte [ecx + 0x34]
cmp al, 4
je 0x63ad29
cmp al, 6
je 0x63ad29
cmp al, 0xc
je 0x63ad29
cmp ebp, 1
jge 0x63ad29
mov dl, byte [esp + 0x13]
xor esi, esi
mov byte [esp + 0x14], dl
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
lea eax, [esp + 0x14]
mov dword [esp + 0x1dc], 0x14
push eax
push 0xfa7
call fcn.00709cc0
add esp, 8
lea ecx, [esp + 0x14]
push 0xffffff00
push ecx
mov ecx, dword [ebx + 0x18]
call fcn.006b8210
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1dc], 0xffffffff
cmp ecx, esi
jmp 0x63bb6f
mov edx, dword [esp + 0x1e8]
mov esi, dword [ebx + 0x20]
lea ecx, [esp + 0x2c]
mov eax, dword [edx]
lea edx, [esp + 0x38]
push ecx
push edx
lea ecx, [esi + 0x14]
mov dword [esp + 0x34], eax
call fcn.00649720
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x38]
cmp eax, esi
je case.0x63adb0.102
lea ecx, [eax + 0x10]
xor esi, esi
cmp ecx, esi
je case.0x63adb0.102
cmp edi, 2
je 0x63ad29
cmp edi, 3
jne 0x63accb
mov eax, dword [esp + 0x34]
mov al, byte [eax + 0x34]
cmp al, 4
je 0x63ad29
cmp al, 6
je 0x63ad29
cmp al, 0xc
je 0x63ad29
cmp ebp, dword [ecx + 0x14]
jge 0x63ad29
mov cl, byte [esp + 0x13]
mov dword [esp + 0x18], esi
mov byte [esp + 0x14], cl
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
lea edx, [esp + 0x14]
mov dword [esp + 0x1dc], 0x12
push edx
push 0xfa7
call fcn.00709cc0
mov ecx, dword [ebx + 0x18]
add esp, 8
lea eax, [esp + 0x14]
push 0xffffff00
push eax
call fcn.006b8210
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1dc], 0xffffffff
cmp ecx, esi
jmp 0x63bb6f
mov ecx, dword [esp + 0x24]
xor eax, eax
mov al, byte [ecx + 0x42]
mov ecx, 0x64
cdq
idiv ecx
cmp edx, 0x11
jne 0x63afd9
mov edi, dword [esp + 0x24]
mov ecx, dword [0x9ea1d4]
mov al, byte [edi + 0x43]
test al, al
je 0x63ad73
cmp al, 0x14
je 0x63ad73
cmp al, 0x1e
je 0x63ad73
cmp al, 0x64
ja 0x63ad73
mov edx, dword [ecx + 0x4e0]
and eax, 0xff
cmp eax, edx
jne case.0x63adb0.102
mov al, byte [edi + 0x44]
test al, al
je 0x63aee7
and eax, 0xff
lea edx, [eax - 1]
cmp edx, 0xb
ja case.default.0x63ad8f
jmp dword [edx*4 + 0x63bd3c]
mov eax, dword [ecx + 0x4e8]
add eax, 0xffffff9b
cmp eax, 0x69
ja case.0x63adb0.102
xor edx, edx
mov dl, byte [eax + 0x63bd74]
jmp dword [edx*4 + 0x63bd6c]
mov eax, dword [ecx + 0x4e8]
add eax, 0xffffff9a
cmp eax, 0x6a
ja case.0x63adb0.102
xor edx, edx
mov dl, byte [eax + 0x63bde8]
jmp dword [edx*4 + 0x63bde0]
mov eax, dword [ecx + 0x4e8]
add eax, 0xffffff99
cmp eax, 0x6b
ja case.0x63adb0.102
xor edx, edx
mov dl, byte [eax + 0x63be5c]
jmp dword [edx*4 + 0x63be54]
mov eax, dword [ecx + 0x4e8]
add eax, 0xffffff98
cmp eax, 0x6c
ja case.0x63adb0.102
xor edx, edx
mov dl, byte [eax + 0x63bed0]
jmp dword [edx*4 + 0x63bec8]
mov eax, dword [ecx + 0x4e8]
sub eax, 0x69
je 0x63aee7
sub eax, 0x64
je 0x63aee7
jmp case.0x63adb0.102
mov eax, dword [ecx + 0x4e8]
sub eax, 0x6a
je 0x63aee7
sub eax, 0x64
je 0x63aee7
jmp case.0x63adb0.102
mov eax, dword [ecx + 0x4e8]
sub eax, 0x6b
je 0x63aee7
sub eax, 0x64
je 0x63aee7
jmp case.0x63adb0.102
mov eax, dword [ecx + 0x4e8]
sub eax, 0x6c
je 0x63aee7
sub eax, 0x64
je 0x63aee7
jmp case.0x63adb0.102
mov eax, dword [ecx + 0x4e8]
sub eax, 0x6d
je 0x63aee7
sub eax, 0x64
je 0x63aee7
jmp case.0x63adb0.102
mov eax, dword [ecx + 0x4e8]
sub eax, 0x6e
je 0x63aee7
sub eax, 0x64
je 0x63aee7
jmp case.0x63adb0.102
mov eax, dword [ecx + 0x4e8]
sub eax, 0x6f
je 0x63aee7
sub eax, 0x64
je 0x63aee7
jmp case.0x63adb0.102
mov eax, dword [ecx + 0x4e8]
sub eax, 0x70
je 0x63aee7
sub eax, 0x64
je 0x63aee7
jmp case.0x63adb0.102
cmp dword [ecx + 0x4e8], eax
je 0x63aee7
jmp case.0x63adb0.102
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
mov edx, dword [ecx + 0x4ec]
movsx ebp, byte [edi + 0x64]
movsx eax, word [esi + 0x7c]
add ebp, eax
cmp edx, ebp
jl case.0x63adb0.102
movsx ebp, byte [edi + 0x65]
add ebp, eax
cmp edx, ebp
jg case.0x63adb0.102
xor eax, eax
mov al, byte [edi + 0x68]
test eax, eax
je 0x63af33
movsx edx, word [esi + 0x82]
add eax, edx
test eax, eax
jle 0x63af33
cmp dword [ecx + 0x8a8], eax
jl case.0x63adb0.102
xor eax, eax
mov al, byte [edi + 0x69]
test eax, eax
je 0x63af55
movsx edx, word [esi + 0x84]
add eax, edx
test eax, eax
jle 0x63af55
cmp dword [ecx + 0x8b0], eax
jl case.0x63adb0.102
xor eax, eax
mov al, byte [edi + 0x6a]
test eax, eax
je 0x63af77
movsx edx, word [esi + 0x86]
add eax, edx
test eax, eax
jle 0x63af77
cmp dword [ecx + 0x8b8], eax
jl case.0x63adb0.102
xor eax, eax
mov al, byte [edi + 0x6b]
test eax, eax
je 0x63af99
movsx edx, word [esi + 0x88]
add eax, edx
test eax, eax
jle 0x63af99
cmp dword [ecx + 0x8c0], eax
jl case.0x63adb0.102
xor eax, eax
mov al, byte [edi + 0x6c]
test eax, eax
je 0x63afdf
movsx edx, word [esi + 0x8a]
add eax, edx
test eax, eax
jle 0x63afdf
cmp dword [ecx + 0x8d0], eax
jge 0x63afdf
jmp case.0x63adb0.102
mov eax, dword [esp + 0x1e8]
mov ecx, dword [eax + 0x74]
push ecx
push 0x82c6d8
call fcn.0045afa0
add esp, 8
jmp case.0x63adb0.102
mov ecx, dword [0x9ea1d4]
mov ebp, dword [esp + 0x1e8]
mov eax, 3
cmp dword [ebp + 0x8c], eax
je 0x63afff
cmp dword [ebp + 0x90], eax
jne 0x63b0b9
cmp dword [ebp + 0x5c], 1
jne 0x63b0b9
mov esi, dword [ebx + 0x24]
mov edx, dword [ebp]
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x38]
push eax
push ecx
lea ecx, [esi + 0x14]
mov dword [esp + 0x34], edx
call fcn.00649790
mov esi, dword [esi + 0x18]
mov ecx, dword [esp + 0x38]
cmp ecx, esi
je case.0x63adb0.102
add ecx, 0x10
test ecx, ecx
je case.0x63adb0.102
mov dword [esp + 0x34], 0
mov eax, dword [ecx + 0xc]
test eax, eax
jg 0x63b05e
jne 0x63b057
mov eax, dword [ecx + 0x10]
test eax, eax
jg 0x63b05e
mov eax, 0xc8
jmp 0x63b063
mov eax, 0x64
mov dword [esp + 0x34], eax
mov edx, dword [ecx + 8]
add eax, edx
cmp eax, 0x64
mov dword [esp + 0x34], eax
jne 0x63b0b3
mov edi, dword [ebx + 0x6c]
lea esi, [ebx + 0x68]
lea edx, [esp + 0x34]
mov ecx, esi
push edx
call fcn.00649a30
mov esi, dword [esi + 4]
mov dword [esp + 0x2c], eax
cmp eax, esi
je 0x63b0a3
mov ecx, dword [esp + 0x34]
mov edx, dword [eax + 0xc]
cmp ecx, edx
jl 0x63b0a3
lea eax, [esp + 0x2c]
jmp 0x63b0ab
mov dword [esp + 0x38], esi
lea eax, [esp + 0x38]
cmp dword [eax], edi
jne case.0x63adb0.102
mov ecx, dword [0x9ea1d4]
mov eax, dword [ebp + 0x8c]
mov edi, dword [esp + 0x1e4]
mov edx, 4
cmp eax, edx
je 0x63b0db
cmp dword [ebp + 0x90], edx
jne case.0x63b141.3
cmp dword [ebp + 0x5c], 1
je 0x63b0ed
cmp edi, dword [ecx + 0x4c8]
jne case.0x63b141.3
cmp eax, 6
jne 0x63b0fe
cmp dword [ebp + 0x90], edx
je case.0x63b141.3
mov esi, dword [ebx + 0x28]
mov edx, dword [ebp]
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x38]
push eax
push ecx
lea ecx, [esi + 0x14]
mov dword [esp + 0x34], edx
call fcn.00649800
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x38]
cmp eax, esi
je case.0x63adb0.102
add eax, 0x10
test eax, eax
je case.0x63adb0.102
mov eax, dword [eax + 4]
dec eax
cmp eax, 7
ja case.0x63b141.3
jmp dword [eax*4 + 0x63bf40]
mov eax, dword [ebx + 0xac]
test eax, eax
je case.0x63b141.3
jmp case.0x63adb0.102
mov eax, dword [ebx + 0xa4]
test eax, eax
je case.0x63b141.3
jmp case.0x63adb0.102
mov eax, dword [ebx + 0xa8]
test eax, eax
je case.0x63b141.3
jmp case.0x63adb0.102
cmp dword [ebx + 0x9c], 0x3f800000
je case.0x63b141.3
jmp case.0x63adb0.102
cmp dword [ebx + 0xa0], 0x3f800000
je case.0x63b141.3
jmp case.0x63adb0.102
mov eax, dword [ebx + 0xb0]
test eax, eax
jne case.0x63adb0.102
mov eax, dword [ebx + 0xb4]
test eax, eax
jne case.0x63adb0.102
mov eax, dword [ebx + 0xb8]
test eax, eax
jne case.0x63adb0.102
mov eax, dword [ebx + 0xbc]
test eax, eax
jne case.0x63adb0.102
mov eax, dword [ebx + 0xc0]
test eax, eax
je case.0x63b141.3
jmp case.0x63adb0.102
mov eax, dword [ebx + 0xc4]
test eax, eax
jne case.0x63adb0.102
mov eax, dword [ebx + 0xc8]
test eax, eax
jne case.0x63adb0.102
mov eax, dword [ebx + 0xcc]
test eax, eax
jne case.0x63adb0.102
mov eax, dword [ebx + 0xd0]
test eax, eax
jne case.0x63adb0.102
mov eax, dword [ebx + 0xd4]
test eax, eax
jne case.0x63adb0.102
mov eax, dword [ebx + 0xd8]
test eax, eax
jne case.0x63adb0.102
mov ecx, dword [ebx + 0x18]
push 0
push edi
call fcn.0070bb20
mov ecx, dword [ebp + 0x38]
mov edi, eax
mov eax, 0x66666667
mov dword [esp + 0x2c], edi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov esi, edx
mov ecx, 0xa
cdq
idiv ecx
test ebp, ebp
je 0x63b4ba
cmp esi, 0xb
jne 0x63b4ba
cmp edx, 3
jne 0x63b4ba
mov edx, dword [0x9ea1d4]
add edx, 0x7c
mov eax, dword [edx]
mov dword [esp + 0x14], eax
mov ecx, dword [edx + 4]
mov dword [esp + 0x18], ecx
mov eax, dword [edx + 8]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x70]
mov ecx, dword [edx + 0xc]
lea edx, [esp + 0x14]
push edx
push eax
mov dword [esp + 0x28], ecx
call fcn.00770096
fld dword [esp + 0xa0]
fadd dword [esp + 0x90]
mov ecx, dword [0x9ea1d4]
lea edx, [ecx + 0x98]
fstp dword [esp + 0x48]
fld dword [esp + 0xa4]
fadd dword [esp + 0x94]
mov eax, dword [edx]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 4]
fstp dword [esp + 0x4c]
fld dword [esp + 0xa8]
fadd dword [esp + 0x98]
mov edx, dword [edx + 8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], edx
fstp dword [esp + 0x50]
mov dword [esp + 0x60], eax
call fcn.0046cd60
fmul dword [0x7e5860]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x44], eax
fadd dword [esp + 0x5c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
fstp dword [esp + 0x5c]
fld dword [esp + 0x48]
fld dword [esp + 0x4c]
fld dword [esp + 0x50]
fld dword [esp + 0x50]
fmul dword [esp + 0x50]
fld dword [esp + 0x4c]
fmul dword [esp + 0x4c]
faddp st(1)
fld dword [esp + 0x48]
fmul dword [esp + 0x48]
faddp st(1)
fsqrt
fcom dword [0x7e5664]
fnstsw ax
test ah, 0x40
jne 0x63b3b2
fld dword [esp + 0x48]
fdiv st(1)
fstp dword [esp + 0x3c]
fld dword [esp + 0x4c]
fdiv st(1)
fstp dword [esp + 0x40]
fld dword [esp + 0x50]
fdiv st(1)
fstp dword [esp + 0x44]
fstp st(0)
mov edx, dword [0x9ea1d4]
mov byte [esp + 0x24], 1
mov eax, dword [edx + 0x914]
cmp eax, 0x1e
je 0x63b3d9
cmp eax, 0x3d
je 0x63b3d9
cmp eax, 0x3e
je 0x63b3d9
cmp eax, 0x3f
jne 0x63b3de
mov byte [esp + 0x24], 0
fld st(2)
fmulp st(3)
mov eax, dword [0x9ea1cc]
fld st(0)
fmul st(1)
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x24]
push eax
lea eax, [esp + 0xb4]
faddp st(3)
fld st(1)
fmul st(2)
push eax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0xd4]
faddp st(3)
mov edx, dword [ecx]
push eax
push ecx
lea eax, [esp + 0x50]
fstp st(0)
fstp st(0)
fsqrt
fstp dword [esp]
push eax
lea eax, [esp + 0x70]
push eax
call dword [edx + 0x60]
mov ebp, dword [esp + 0x1e8]
mov bl, al
mov eax, dword [ebp + 0x5c]
add eax, 0xfffffffb
cmp eax, 0x14
ja case.0x63b44c.9
xor ecx, ecx
mov cl, byte [eax + 0x63bf74]
jmp dword [ecx*4 + 0x63bf60]
test bl, bl
je case.0x63b44c.9
mov dl, byte [esp + 0x13]
xor esi, esi
mov byte [esp + 0x14], dl
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
lea eax, [esp + 0x14]
mov dword [esp + 0x1dc], 0x15
push eax
push 0xfaa
call fcn.00709cc0
mov edx, dword [esp + 0x30]
add esp, 8
lea ecx, [esp + 0x14]
push 0xffffff00
push ecx
mov ecx, dword [edx + 0x18]
call fcn.006b8210
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1dc], 0xffffffff
cmp ecx, esi
jmp 0x63bb6f
test edi, edi
jne 0x63b4c5
mov al, 1
jmp 0x63bd0f
mov ecx, dword [0x9ea1d4]
lea edx, [ecx + 0x98]
mov eax, dword [ecx + 0x98]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov edx, dword [edx + 8]
mov dword [esp + 0x58], eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], eax
call fcn.0046cd60
fmul dword [0x7e5860]
lea ecx, [edi + 0x98]
fadd dword [esp + 0x5c]
fstp dword [esp + 0x5c]
mov edx, dword [ecx]
mov dword [esp + 0x14], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x18], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x44], ecx
mov ecx, edi
mov dword [esp + 0x40], eax
call fcn.0046cd60
fmul dword [0x7e5860]
fadd dword [esp + 0x40]
fld dword [esp + 0x3c]
fsub dword [esp + 0x58]
fstp dword [esp + 0x3c]
fsub dword [esp + 0x5c]
fstp dword [esp + 0x40]
fld dword [esp + 0x44]
fsub dword [esp + 0x60]
fstp dword [esp + 0x44]
fld dword [esp + 0x3c]
fld dword [esp + 0x40]
fld dword [esp + 0x44]
fld dword [esp + 0x44]
fmul dword [esp + 0x44]
fld dword [esp + 0x3c]
fmul dword [esp + 0x3c]
faddp st(1)
fld dword [esp + 0x40]
fmul dword [esp + 0x40]
faddp st(1)
fsqrt
fcom dword [0x7e5664]
fnstsw ax
test ah, 0x40
jne 0x63b5c0
fld dword [esp + 0x3c]
fdiv st(1)
fstp dword [esp + 0x3c]
fld dword [esp + 0x40]
fdiv st(1)
fstp dword [esp + 0x40]
fld dword [esp + 0x44]
fdiv st(1)
fstp dword [esp + 0x44]
fstp st(0)
fld st(2)
fmul st(3)
fld st(1)
fmul st(2)
faddp st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fcomp dword [0x7e6314]
fnstsw ax
test ah, 0x41
jne 0x63b3b4
fld dword [esp + 0x3c]
fmul dword [0x7e6314]
fld dword [esp + 0x40]
fmul dword [0x7e6314]
fstp dword [esp + 0x18]
fld dword [esp + 0x44]
fmul dword [0x7e6314]
fstp dword [esp + 0x1c]
fxch st(3)
fsub st(3)
fxch st(3)
fstp st(0)
fxch st(1)
fsub dword [esp + 0x18]
fxch st(1)
fsub dword [esp + 0x1c]
jmp 0x63b3b4
mov ecx, dword [ebp + 0x38]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
xor edi, edi
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov esi, edx
mov ecx, 0xa
cdq
idiv ecx
cmp ebp, edi
je 0x63b6b9
cmp esi, 0xb
jne 0x63b6b9
cmp edx, 3
jne 0x63b6b9
test bl, bl
je case.0x63b44c.9
mov dl, byte [esp + 0x13]
mov dword [esp + 0x18], edi
mov byte [esp + 0x14], dl
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
lea eax, [esp + 0x14]
mov dword [esp + 0x1dc], 0x16
push eax
push 0xfaa
call fcn.00709cc0
mov edx, dword [esp + 0x30]
add esp, 8
lea ecx, [esp + 0x14]
push 0xffffff00
push ecx
mov ecx, dword [edx + 0x18]
call fcn.006b8210
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1dc], 0xffffffff
cmp ecx, edi
jmp 0x63bb6f
mov eax, dword [esp + 0x2c]
mov ecx, dword [0x9ea1d4]
push eax
call fcn.004804f0
test al, al
je case.0x63b44c.9
test bl, bl
je case.0x63b44c.9
mov cl, byte [esp + 0x13]
mov dword [esp + 0x18], edi
mov byte [esp + 0x14], cl
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
lea edx, [esp + 0x14]
mov dword [esp + 0x1dc], 0x17
push edx
push 0xfaa
call fcn.00709cc0
mov ecx, dword [esp + 0x30]
add esp, 8
lea eax, [esp + 0x14]
mov ecx, dword [ecx + 0x18]
push 0xffffff00
push eax
call fcn.006b8210
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1dc], 0xffffffff
cmp ecx, edi
jmp 0x63bb6f
test bl, bl
je case.0x63b44c.9
mov dl, byte [esp + 0x13]
xor esi, esi
mov byte [esp + 0x14], dl
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
lea eax, [esp + 0x14]
mov dword [esp + 0x1dc], 0x18
push eax
push 0xfaa
call fcn.00709cc0
mov edx, dword [esp + 0x30]
add esp, 8
lea ecx, [esp + 0x14]
push 0xffffff00
push ecx
mov ecx, dword [edx + 0x18]
call fcn.006b8210
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1dc], 0xffffffff
cmp ecx, esi
jmp 0x63bb6f
mov ecx, dword [0x9ea1d4]
push edi
call fcn.004804f0
test al, al
jne case.0x63b44c.9
test bl, bl
je case.0x63b44c.9
mov al, byte [esp + 0x13]
xor esi, esi
mov byte [esp + 0x14], al
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
lea ecx, [esp + 0x14]
mov dword [esp + 0x1dc], 0x19
push ecx
push 0xfaa
call fcn.00709cc0
mov eax, dword [esp + 0x30]
add esp, 8
lea edx, [esp + 0x14]
mov ecx, dword [eax + 0x18]
push 0xffffff00
push edx
call fcn.006b8210
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1dc], 0xffffffff
cmp ecx, esi
jmp 0x63bb6f
mov edx, dword [0x9eba88]
mov ecx, dword [ebp]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x24]
mov eax, dword [edx + 0x1fc]
lea edx, [esp + 0x34]
push ecx
push edx
mov edi, dword [eax + 0x2c]
lea esi, [edi + 0x14]
mov ecx, esi
call fcn.00483030
mov esi, dword [esi + 4]
mov eax, dword [esp + 0x34]
cmp eax, esi
je 0x63b856
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + 0xc]
cmp ecx, edx
jb 0x63b856
lea eax, [esp + 0x34]
jmp 0x63b85e
mov dword [esp + 0x2c], esi
lea eax, [esp + 0x2c]
mov eax, dword [eax]
mov ecx, dword [edi + 0x18]
cmp eax, ecx
je 0x63ba10
add eax, 0x10
xor ebx, ebx
cmp eax, ebx
je 0x63ba12
cmp dword [eax + 0x74], ebx
je 0x63ba12
mov ecx, dword [eax + 0x6c]
mov esi, 0x3e8
mov eax, ecx
mov edi, dword [0x9ea1d4]
cdq
idiv esi
mov eax, 0x10624dd3
mov esi, edx
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x63b8da
mov eax, dword [edi + 0x4e8]
cmp eax, 0x65
je 0x63b8d3
cmp eax, 0x69
je 0x63b8d3
cmp eax, 0x6a
je 0x63b8d3
cmp eax, 0xc9
je 0x63b8d3
cmp eax, 0xcd
je 0x63b8d3
cmp eax, 0xce
jne 0x63b8da
mov al, 1
jmp 0x63bd0f
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
mov eax, esi
shr ecx, 0x1f
add edx, ecx
mov esi, 0x64
mov ecx, edx
cdq
idiv esi
cmp ecx, ebx
mov esi, edx
je 0x63b92e
mov eax, dword [edi + 0x4e8]
cmp eax, 0x66
je 0x63b927
cmp eax, 0x6b
je 0x63b927
cmp eax, 0x6c
je 0x63b927
cmp eax, 0xca
je 0x63b927
cmp eax, 0xcf
je 0x63b927
cmp eax, 0xd0
jne 0x63b92e
mov al, 1
jmp 0x63bd0f
mov eax, 0x66666667
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, esi
mov ecx, edx
mov esi, 0xa
cdq
idiv esi
cmp ecx, ebx
je 0x63b980
mov eax, dword [edi + 0x4e8]
cmp eax, 0x67
je 0x63b979
cmp eax, 0x6d
je 0x63b979
cmp eax, 0x6e
je 0x63b979
cmp eax, 0xcb
je 0x63b979
cmp eax, 0xd1
je 0x63b979
cmp eax, 0xd2
jne 0x63b980
mov al, 1
jmp 0x63bd0f
cmp edx, ebx
je 0x63b9b5
mov eax, dword [edi + 0x4e8]
cmp eax, 0x68
je 0x63b9ae
cmp eax, 0x6f
je 0x63b9ae
cmp eax, 0x70
je 0x63b9ae
cmp eax, 0xcc
je 0x63b9ae
cmp eax, 0xd3
je 0x63b9ae
cmp eax, 0xd4
jne 0x63b9b5
mov al, 1
jmp 0x63bd0f
mov cl, byte [esp + 0x13]
mov dword [esp + 0x18], ebx
mov byte [esp + 0x14], cl
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
lea edx, [esp + 0x14]
mov dword [esp + 0x1dc], 0x1a
push edx
push 0xfa2
call fcn.00709cc0
mov ecx, dword [esp + 0x30]
add esp, 8
lea eax, [esp + 0x14]
mov ecx, dword [ecx + 0x18]
push 0xffff3b3b
push eax
call fcn.006b8210
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1dc], 0xffffffff
jmp 0x63bb6d
xor ebx, ebx
mov ecx, dword [0x9ea1d4]
mov al, byte [ecx + 0x4fc]
test al, al
je 0x63bb92
mov al, byte [ecx + 0x504]
test al, al
jne 0x63bb92
mov eax, dword [ecx + 0x500]
cmp eax, 0x753a
je 0x63bb92
cmp eax, 0x7558
je 0x63bb92
cmp eax, 0x7562
je 0x63bb92
cmp eax, 0x756c
je 0x63bb92
cmp eax, 0x756d
je 0x63bb92
mov eax, dword [ecx + 0x508]
cmp eax, ebx
je 0x63bae1
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
mov edi, dword [edx + 0x2c]
push eax
lea esi, [edi + 0x14]
mov ecx, esi
call fcn.00649ca0
mov esi, dword [esi + 4]
mov dword [esp + 0x2c], eax
cmp eax, esi
je 0x63bab1
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + 0xc]
cmp ecx, edx
jb 0x63bab1
lea eax, [esp + 0x2c]
jmp 0x63bab9
mov dword [esp + 0x38], esi
lea eax, [esp + 0x38]
mov eax, dword [eax]
mov ecx, dword [edi + 0x18]
cmp eax, ecx
je 0x63badb
add eax, 0x10
cmp eax, ebx
je 0x63badb
cmp dword [eax + 0x70], ebx
jne 0x63badb
cmp dword [ebp], 0x49445
jb case.0x63adb0.102
mov ecx, dword [0x9ea1d4]
mov edx, dword [ebp + 0x8c]
mov eax, 2
cmp edx, eax
je 0x63bafc
cmp dword [ebp + 0x90], eax
jne 0x63bb92
call fcn.004754a0
test al, al
jne 0x63bb92
mov ecx, dword [0x9ea1d4]
call fcn.00475c50
test al, al
jne 0x63bb92
mov dl, byte [esp + 0x13]
mov dword [esp + 0x18], ebx
mov byte [esp + 0x14], dl
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
lea eax, [esp + 0x14]
mov dword [esp + 0x1dc], 0x1b
push eax
push 0x1de2
call fcn.00709cc0
add esp, 8
lea ecx, [esp + 0x14]
push 0xffffff00
push ecx
mov ecx, dword [0x9eba88]
call fcn.006b8210
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1dc], 0xffffffff
cmp ecx, ebx
je case.0x63adb0.102
mov al, byte [ecx - 1]
test al, al
je 0x63a691
cmp al, 0xff
je 0x63a691
dec al
mov byte [ecx - 1], al
jmp case.0x63adb0.102
mov eax, dword [ebp]
cmp eax, 0x1b883
je 0x63bba7
cmp eax, 0x33f23
jne 0x63b9ae
mov edi, dword [0x9ea1d0]
mov edx, dword [esp + 0x1e4]
lea eax, [esp + 0x24]
mov dword [esp + 0x24], edx
lea esi, [edi + 0x28]
push eax
mov ecx, esi
call fcn.00483000
mov esi, dword [esi + 4]
mov dword [esp + 0x2c], eax
cmp eax, esi
je 0x63bbe3
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + 0xc]
cmp ecx, edx
jl 0x63bbe3
lea eax, [esp + 0x2c]
jmp 0x63bbeb
mov dword [esp + 0x38], esi
lea eax, [esp + 0x38]
mov eax, dword [eax]
mov ecx, dword [edi + 0x2c]
cmp eax, ecx
je 0x63b9ae
mov eax, dword [eax + 0x10]
cmp eax, ebx
je 0x63b9ae
mov edi, dword [0x9ea1b8]
mov edx, dword [eax + 0x838]
lea eax, [esp + 0x24]
mov dword [esp + 0x24], edx
lea esi, [edi + 0x14]
push eax
mov ecx, esi
call fcn.00649d60
mov esi, dword [esi + 4]
mov dword [esp + 0x2c], eax
cmp eax, esi
je 0x63bc3e
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + 0xc]
cmp ecx, edx
jb 0x63bc3e
lea eax, [esp + 0x2c]
jmp 0x63bc46
mov dword [esp + 0x38], esi
lea eax, [esp + 0x38]
mov eax, dword [eax]
mov ecx, dword [edi + 0x18]
cmp eax, ecx
je 0x63b9ae
add eax, 0x10
cmp eax, ebx
je 0x63b9ae
cmp byte [eax + 0x18], 1
jne 0x63b9ae
lea edx, [esp + 0x13]
lea ecx, [esp + 0x14]
push edx
push 0x831184
call fcn.004c84c0
mov ecx, dword [0x9eba88]
lea eax, [esp + 0x14]
push 0xffffff00
push eax
mov dword [esp + 0x1e4], 0x1c
call fcn.006b8210
lea ecx, [esp + 0x14]
mov dword [esp + 0x1dc], 0xffffffff
call fcn.00404b60
jmp case.0x63adb0.102
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x18], cl
lea ecx, [esp + 0x18]
call fcn.00404e60
lea edx, [esp + 0x14]
mov dword [esp + 0x1dc], 0xa
push edx
push 0xfa5
call fcn.00709cc0
mov ecx, dword [esp + 0x30]
add esp, 8
lea eax, [esp + 0x14]
mov ecx, dword [ecx + 0x18]
push 0xffffff00
push eax
call fcn.006b8210
mov dword [esp + 0x1dc], 0xffffffff
push 1
lea ecx, [esp + 0x18]
call fcn.00404e60
xor al, al
mov ecx, dword [esp + 0x1d4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1d0
ret 8