Function at 0x40a0e0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd4
mov eax, dword [0x62acc0]
xor eax, ebp
mov dword [ebp - 4], eax
xor eax, eax
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, ecx
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x5c], eax
lea eax, [ebx + 0x108]
push 0x61444c
push eax
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x2c], eax
call fcn.005000e0
add esp, 8
test eax, eax
je 0x40a398
mov eax, dword [ebx + 0xcb8]
xorps xmm0, xmm0
cdq
add eax, esi
mov dword [ebp - 8], 0
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x28]
adc edx, edi
push eax
mov dword [ebp - 0x44], edx
movups xmmword [ebp - 0x28], xmm0
movups xmmword [ebp - 0x18], xmm0
call fcn.00508dfe
movss xmm1, dword [ebx + 0xcac]
lea eax, [ebp - 0x50]
movss xmm2, dword [ebx + 0xcb0]
movsd xmm0, qword [0x6171e0]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
inc esi
movsd qword [esp], xmm0
add edi, 0x76c
sub esp, 0x10
mov edx, esi
cvtps2pd xmm1, xmm1
mov ecx, edi
cvtps2pd xmm2, xmm2
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm2
push eax
lea eax, [ebp - 0x48]
push eax
push 1
push dword [ebp - 0x1c]
call fcn.00410110
movsd xmm1, qword [0x616e68]
add esp, 0x28
movsd xmm2, qword [0x617168]
test eax, eax
jne 0x40a203
movsd xmm0, qword [ebp - 0x48]
addsd xmm0, xmm1
mulsd xmm0, xmm2
cvttsd2si eax, xmm0
movsd xmm0, qword [ebp - 0x50]
addsd xmm0, xmm1
mov dword [ebp - 0x68], eax
mulsd xmm0, xmm2
cvttsd2si eax, xmm0
mov dword [ebp - 0x6c], eax
movsd xmm0, qword [0x617210]
lea eax, [ebp - 0x50]
sub esp, 0x18
mov edx, esi
mov ecx, edi
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [ebx + 0xcac]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [ebx + 0xcb0]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
lea eax, [ebp - 0x48]
push eax
push 0
push dword [ebp - 0x1c]
call fcn.00410110
add esp, 0x28
test eax, eax
jne 0x40a28a
movsd xmm0, qword [ebp - 0x48]
addsd xmm0, qword [0x616e68]
mulsd xmm0, qword [0x617168]
cvttsd2si eax, xmm0
movsd xmm0, qword [ebp - 0x50]
addsd xmm0, qword [0x616e68]
mov dword [ebp - 0x70], eax
mulsd xmm0, qword [0x617168]
cvttsd2si eax, xmm0
mov dword [ebp - 0x74], eax
movsd xmm0, qword [0x617220]
lea eax, [ebp - 0x50]
sub esp, 0x18
mov edx, esi
mov ecx, edi
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [ebx + 0xcac]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [ebx + 0xcb0]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
lea eax, [ebp - 0x48]
push eax
push 0
push dword [ebp - 0x1c]
call fcn.00410110
add esp, 0x28
test eax, eax
jne 0x40a311
movsd xmm0, qword [ebp - 0x48]
addsd xmm0, qword [0x616e68]
mulsd xmm0, qword [0x617168]
cvttsd2si eax, xmm0
movsd xmm0, qword [ebp - 0x50]
addsd xmm0, qword [0x616e68]
mov dword [ebp - 0x78], eax
mulsd xmm0, qword [0x617168]
cvttsd2si eax, xmm0
mov dword [ebp - 0x7c], eax
movsd xmm0, qword [0x617228]
lea eax, [ebp - 0x50]
sub esp, 0x18
mov edx, esi
mov ecx, edi
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [ebx + 0xcac]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [ebx + 0xcb0]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
lea eax, [ebp - 0x48]
push eax
push 0
push dword [ebp - 0x1c]
call fcn.00410110
add esp, 0x28
test eax, eax
jne 0x40a398
movsd xmm0, qword [ebp - 0x48]
addsd xmm0, qword [0x616e68]
mulsd xmm0, qword [0x617168]
cvttsd2si eax, xmm0
movsd xmm0, qword [ebp - 0x50]
addsd xmm0, qword [0x616e68]
mov dword [ebp - 0x80], eax
mulsd xmm0, qword [0x617168]
cvttsd2si eax, xmm0
mov dword [ebp - 0x5c], eax
mov dword [ebx + 0x104], 0
lea edi, [ebx + 0x20c]
mov byte [edi], 0
mov ax, word [0x614450]
mov word [ebp - 0x54], ax
mov al, byte [0x614452]
push 0
mov byte [ebp - 0x52], al
call fcn.0050d930
mov ecx, dword [0x63475c]
add esp, 4
sub eax, dword [ebx + 0xce0]
mov esi, edx
mov dword [ebp - 0x44], eax
mov eax, ecx
sbb esi, dword [ebx + 0xce4]
shl eax, 4
sub eax, ecx
shl eax, 2
cdq
cmp esi, edx
jg 0x40a3fe
jl 0x40a3f4
cmp dword [ebp - 0x44], eax
ja 0x40a3fe
mov eax, dword [ebx + 0xcc0]
mov cl, 1
jmp 0x40a405
xor cl, cl
mov eax, 0x4a
mov esi, dword [ebp - 0x2c]
mov dword [ebx + 0xcc4], eax
mov byte [ebp - 0x31], cl
mov al, byte [esi]
test al, al
je 0x40beda
movsd xmm6, qword [0x616fa0]
mov edx, 0x614196
movsd xmm1, qword [0x616fb0]
movsd xmm3, qword [0x616fd8]
movsd xmm5, qword [0x617078]
movsd xmm4, qword [0x616f98]
movss xmm2, dword [0x6171d0]
cmp al, 0xd
jne 0x40a490
cmp byte [esi + 1], 0xa
jne 0x40beb9
mov byte [edi], 0
add esi, 2
mov eax, dword [ebx + 0x104]
inc eax
mov dword [ebp - 0x2c], esi
mov dword [ebx + 0x104], eax
cmp eax, 8
jge 0x40bed0
imul edi, eax, 0x104
add edi, 0x20c
add edi, ebx
jmp 0x40bec2
cmp al, 0x23
jne 0x40beb9
mov al, byte [esi + 1]
cmp al, 0x43
jne 0x40a633
mov al, byte [esi + 2]
cmp al, 0x43
jne 0x40a4f3
cmp byte [esi + 3], 0x49
jne 0x40a543
push 0xffffffffffffffff
lea eax, [ebx + 0xa6c]
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a4e0
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x53
jne 0x40a543
cmp byte [esi + 3], 0x54
jne 0x40a593
push 0xffffffffffffffff
lea eax, [ebx + 0xba0]
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a530
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x43
jne 0x40a5e3
cmp byte [esi + 3], 0x4f
jne 0x40a597
push 0xffffffffffffffff
lea eax, [ebx + 0xb34]
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a580
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x43
jne 0x40a5e3
cmp byte [esi + 3], 0x43
jne 0x40beb9
push 0xffffffffffffffff
lea eax, [ebx + 0xb98]
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a5d0
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x49
jne 0x40beb9
cmp byte [esi + 3], 0x43
jne 0x40beb9
push 0xffffffffffffffff
lea eax, [ebx + 0xca2]
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a620
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x54
jne 0x40a883
mov al, byte [esi + 2]
cmp al, 0x54
jne 0x40a6a6
cmp byte [esi + 3], 0x4d
jne 0x40a753
cmp dword [0x634524], 1
mov eax, dword [ebx + 0xcb8]
sete cl
cdq
add eax, dword [ebp - 0x38]
push 0xffffffffffffffff
adc edx, dword [ebp - 0x3c]
push ecx
push edx
push eax
call fcn.00409b10
add esp, 0xc
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a693
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x32
jne 0x40a753
cmp byte [esi + 3], 0x34
jne 0x40a833
mov eax, dword [ebx + 0xcb8]
xorps xmm0, xmm0
cdq
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x88]
adc edx, dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x84], edx
push eax
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 8], 0
movups xmmword [ebp - 0x18], xmm0
call fcn.00508dfe
push dword [ebp - 0x24]
push dword [ebp - 0x20]
push 0x6143f0
push 0x104
push 0xa13c70
call fcn.00407c70
imul eax, dword [ebx + 0x104], 0x104
add esp, 0x1c
push 0xffffffffffffffff
sub eax, edi
add eax, 0x310
push 0xa13c70
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a740
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x41
jne 0x40a833
cmp byte [esi + 3], 0x50
jne 0x40beb9
mov eax, dword [ebx + 0xcb8]
xorps xmm0, xmm0
cdq
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x90]
adc edx, dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x8c], edx
push eax
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 8], 0
movups xmmword [ebp - 0x18], xmm0
call fcn.00508dfe
mov ecx, dword [ebp - 0x20]
add esp, 8
cmp ecx, 0x17
ja 0x40a7ca
xor edx, edx
mov eax, 0xc
cmp ecx, 0xb
setg dl
test ecx, ecx
cmove ecx, eax
mov eax, ecx
cmp eax, 0xc
lea ecx, [eax - 0xc]
cmovle ecx, eax
jmp 0x40a7cd
or edx, 0xffffffff
test edx, edx
mov eax, 0x6143fc
mov edx, 0x614400
cmovne eax, edx
push eax
push dword [ebp - 0x24]
push ecx
push 0x614404
push 0x104
push 0xa13c70
call fcn.00407c70
imul eax, dword [ebx + 0x104], 0x104
push 0xffffffffffffffff
push 0xa13c70
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x28
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a820
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x54
jne 0x40beb9
cmp byte [esi + 3], 0x5a
jne 0x40beb9
push 0xffffffffffffffff
lea eax, [ebx + 0xc9a]
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a870
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x44
jne 0x40adeb
mov al, byte [esi + 2]
cmp al, 0x44
jne 0x40aa09
cmp byte [esi + 3], 0x54
jne 0x40a963
mov eax, dword [ebp - 0x64]
xorps xmm0, xmm0
cmp dword [0x634528], 1
movups xmmword [ebp - 0x28], xmm0
sete bl
mov dword [ebp - 8], 0
mov eax, dword [eax + 0xcb8]
cdq
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0x98]
adc edx, dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x94], edx
push eax
movups xmmword [ebp - 0x18], xmm0
call fcn.00508dfe
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
add eax, 0x76c
mov ecx, dword [ebp - 0x1c]
inc edx
push eax
test bl, bl
mov eax, edx
cmovne eax, ecx
cmovne ecx, edx
push eax
push ecx
mov ecx, 0x614414
mov eax, 0x614424
cmove eax, ecx
push eax
push 0x104
push 0xa13a60
call fcn.00407c70
mov ebx, dword [ebp - 0x64]
push 0xffffffffffffffff
push 0xa13a60
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x30
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a950
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp byte [esi + 3], 0x44
jne 0x40aab6
mov eax, dword [ebx + 0xcb8]
xorps xmm0, xmm0
cdq
add eax, dword [ebp - 0x38]
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0xa0]
adc edx, dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x9c], edx
push eax
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 8], 0
movups xmmword [ebp - 0x18], xmm0
call fcn.00508dfe
mov eax, dword [ebp - 0x14]
add eax, 0x76c
push eax
mov eax, dword [ebp - 0x18]
inc eax
push eax
push dword [ebp - 0x1c]
push 0x614414
push 0x104
push 0xa13a60
call fcn.00407c70
imul eax, dword [ebx + 0x104], 0x104
push 0xffffffffffffffff
push 0xa13a60
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x30
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40a9f6
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x4d
jne 0x40aab6
cmp byte [esi + 3], al
jne 0x40ab56
mov eax, dword [ebx + 0xcb8]
xorps xmm0, xmm0
cdq
add eax, dword [ebp - 0x38]
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0xa8]
adc edx, dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0xa4], edx
push eax
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 8], 0
movups xmmword [ebp - 0x18], xmm0
call fcn.00508dfe
mov eax, dword [ebp - 0x14]
add eax, 0x76c
push eax
push dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
inc eax
push eax
push 0x614424
push 0x104
push 0xa13a60
call fcn.00407c70
imul eax, dword [ebx + 0x104], 0x104
push 0xffffffffffffffff
push 0xa13a60
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x30
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40aaa3
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x44
jne 0x40ab56
cmp byte [esi + 3], 0x59
jne 0x40abf8
mov eax, dword [ebx + 0xcb8]
xorps xmm0, xmm0
cdq
add eax, dword [ebp - 0x38]
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0xb0]
adc edx, dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0xac], edx
push eax
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 8], 0
movups xmmword [ebp - 0x18], xmm0
call fcn.00508dfe
push dword [ebp - 0x1c]
push 0x61443c
push 0x104
push 0xa13d78
call fcn.00407c70
imul eax, dword [ebx + 0x104], 0x104
push 0xffffffffffffffff
push 0xa13d78
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x28
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ab43
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x4d
jne 0x40abf8
cmp byte [esi + 3], 0x4f
jne 0x40aca3
mov eax, dword [ebx + 0xcb8]
xorps xmm0, xmm0
cdq
add eax, dword [ebp - 0x38]
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0xb8]
adc edx, dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0xb4], edx
push eax
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 8], 0
movups xmmword [ebp - 0x18], xmm0
call fcn.00508dfe
mov eax, dword [ebp - 0x18]
inc eax
push eax
push 0x61443c
push 0x104
push 0xa13d78
call fcn.00407c70
imul eax, dword [ebx + 0x104], 0x104
push 0xffffffffffffffff
push 0xa13d78
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x28
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40abe5
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x59
jne 0x40aca3
cmp byte [esi + 3], 0x52
jne 0x40ad47
mov eax, dword [ebx + 0xcb8]
xorps xmm0, xmm0
cdq
add eax, dword [ebp - 0x38]
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0xc0]
adc edx, dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0xbc], edx
push eax
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 8], 0
movups xmmword [ebp - 0x18], xmm0
call fcn.00508dfe
mov eax, dword [ebp - 0x14]
add eax, 0x76c
push eax
push 0x614444
push 0x104
push 0xa13d78
call fcn.00407c70
imul eax, dword [ebx + 0x104], 0x104
push 0xffffffffffffffff
push 0xa13d78
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x28
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ac90
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x57
jne 0x40beb9
cmp byte [esi + 3], 0x33
jne 0x40ad4f
mov eax, dword [ebx + 0xcb8]
xorps xmm0, xmm0
cdq
add eax, dword [ebp - 0x38]
mov dword [ebp - 0xc8], eax
lea eax, [ebp - 0xc8]
adc edx, dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0xc4], edx
push eax
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 8], 0
movups xmmword [ebp - 0x18], xmm0
call fcn.00508dfe
mov edx, dword [ebp - 0x18]
add esp, 8
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
add eax, 0x76c
push 0xffffffffffffffff
push 0
push eax
lea edx, [edx + 1]
call fcn.00409be0
add esp, 8
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ad34
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x57
jne 0x40beb9
cmp byte [esi + 3], 0x44
jne 0x40beb9
mov eax, dword [ebx + 0xcb8]
xorps xmm0, xmm0
cdq
add eax, dword [ebp - 0x38]
mov dword [ebp - 0xd0], eax
lea eax, [ebp - 0xd0]
adc edx, dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0xcc], edx
push eax
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 8], 0
movups xmmword [ebp - 0x18], xmm0
call fcn.00508dfe
mov edx, dword [ebp - 0x18]
add esp, 8
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
add eax, 0x76c
push 0xffffffffffffffff
push 1
push eax
lea edx, [edx + 1]
call fcn.00409be0
add esp, 8
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40add8
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x53
jne 0x40b17b
mov al, byte [esi + 2]
cmp al, 0x53
jne 0x40aed4
cmp byte [esi + 3], 0x52
jne 0x40ae67
mov edx, dword [ebp - 0x68]
test edx, edx
je 0x40ae2a
cmp dword [0x634524], 1
mov eax, dword [ebx + 0xcb8]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00409b10
add esp, 8
jmp 0x40ae2f
mov eax, 0x614454
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ae54
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp byte [esi + 3], 0x53
jne 0x40afb3
mov edx, dword [ebp - 0x6c]
test edx, edx
je 0x40ae97
cmp dword [0x634524], 1
mov eax, dword [ebx + 0xcb8]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00409b10
add esp, 8
jmp 0x40ae9c
mov eax, 0x614454
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40aec1
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x43
jne 0x40afb3
cmp byte [esi + 3], 0x52
jne 0x40af45
mov edx, dword [ebp - 0x70]
test edx, edx
je 0x40af08
cmp dword [0x634524], 1
mov eax, dword [ebx + 0xcb8]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00409b10
add esp, 8
jmp 0x40af0d
mov eax, 0x614454
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40af32
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp byte [esi + 3], 0x53
jne 0x40b024
mov edx, dword [ebp - 0x74]
test edx, edx
je 0x40af75
cmp dword [0x634524], 1
mov eax, dword [ebx + 0xcb8]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00409b10
add esp, 8
jmp 0x40af7a
mov eax, 0x614454
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40afa0
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x4e
jne 0x40b095
cmp byte [esi + 3], 0x52
jne 0x40b028
mov edx, dword [ebp - 0x78]
test edx, edx
je 0x40afe7
cmp dword [0x634524], 1
mov eax, dword [ebx + 0xcb8]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00409b10
add esp, 8
jmp 0x40afec
mov eax, 0x614454
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b011
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x4e
jne 0x40b095
cmp byte [esi + 3], 0x53
jne 0x40b106
mov edx, dword [ebp - 0x7c]
test edx, edx
je 0x40b058
cmp dword [0x634524], 1
mov eax, dword [ebx + 0xcb8]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00409b10
add esp, 8
jmp 0x40b05d
mov eax, 0x614454
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b082
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x41
jne 0x40beb9
cmp byte [esi + 3], 0x52
jne 0x40b10e
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x40b0c9
cmp dword [0x634524], 1
mov eax, dword [ebx + 0xcb8]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00409b10
add esp, 8
jmp 0x40b0ce
mov eax, 0x614454
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b0f3
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x41
jne 0x40beb9
cmp byte [esi + 3], 0x53
jne 0x40beb9
mov edx, dword [ebp - 0x5c]
test edx, edx
je 0x40b13e
cmp dword [0x634524], 1
mov eax, dword [ebx + 0xcb8]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00409b10
add esp, 8
jmp 0x40b143
mov eax, 0x614454
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b168
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x57
jne 0x40bc18
mov al, byte [esi + 2]
cmp al, 0x54
jne 0x40b3d3
cmp byte [esi + 3], 0x50
jne 0x40b243
test cl, cl
je 0x40b1ff
movss xmm0, dword [ebx + 0xcbc]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x40b1b2
movaps xmm0, xmm2
jmp 0x40b1d4
mov eax, dword [0x634758]
test eax, eax
je 0x40b1d4
cmp eax, 1
jne 0x40b1d1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm4
addsd xmm0, xmm5
cvtpd2ps xmm0, xmm0
jmp 0x40b1d4
xorps xmm0, xmm0
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 1
push 0x614434
push 0x104
push 0xa13b68
call fcn.00407c70
add esp, 0x18
mov eax, 0xa13b68
jmp 0x40b204
mov eax, 0x614458
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b230
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp byte [esi + 3], 0x55
jne 0x40b2a3
mov ecx, dword [0x634758]
test ecx, ecx
jne 0x40b25a
mov eax, 0x615bc4
jmp 0x40b265
cmp ecx, 1
mov eax, 0x615bc8
cmovne eax, edx
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b290
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp byte [esi + 3], 0x43
jne 0x40b333
test cl, cl
je 0x40b2f0
movss xmm0, dword [ebx + 0xcbc]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x40b2c5
movaps xmm0, xmm2
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 1
push 0x614434
push 0x104
push 0xa13b68
call fcn.00407c70
add esp, 0x18
mov eax, 0xa13b68
jmp 0x40b2f5
mov eax, 0x614458
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b320
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp byte [esi + 3], 0x46
jne 0x40b433
test cl, cl
je 0x40b391
movss xmm0, dword [ebx + 0xcbc]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x40b357
movaps xmm0, xmm2
jmp 0x40b366
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm4
addsd xmm0, xmm5
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 1
push 0x614434
push 0x104
push 0xa13b68
call fcn.00407c70
add esp, 0x18
mov eax, 0xa13b68
jmp 0x40b396
mov eax, 0x614458
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b3c0
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x44
jne 0x40b493
cmp byte [esi + 3], 0x53
jne 0x40b437
test cl, cl
je 0x40b3f6
imul eax, dword [ebx + 0xcc4], 0xa4
add eax, 0x63148c
jmp 0x40b3fb
mov eax, 0x61445c
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b420
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x44
jne 0x40b493
cmp byte [esi + 3], 0x4c
jne 0x40b573
test cl, cl
je 0x40b456
imul eax, dword [ebx + 0xcc4], 0xa4
add eax, 0x6314cc
jmp 0x40b45b
mov eax, 0x61445c
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b480
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x57
jne 0x40ba33
cmp byte [esi + 3], 0x49
jne 0x40b57b
test cl, cl
je 0x40b530
movss xmm0, dword [ebx + 0xcc8]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x40b4c3
movaps xmm0, xmm2
jmp 0x40b505
mov eax, dword [0x63452c]
test eax, eax
je 0x40b505
cmp eax, 1
jne 0x40b4de
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm3
cvtpd2ps xmm0, xmm0
jmp 0x40b505
cmp eax, 2
jne 0x40b4f0
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
jmp 0x40b505
cmp eax, 3
jne 0x40b502
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm6
cvtpd2ps xmm0, xmm0
jmp 0x40b505
xorps xmm0, xmm0
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 1
push 0x614434
push 0x104
push 0xa13b68
call fcn.00407c70
add esp, 0x18
mov eax, 0xa13b68
jmp 0x40b535
mov eax, 0x614458
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b560
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x57
jne 0x40ba33
cmp byte [esi + 3], 0x55
jne 0x40b5f3
mov ecx, dword [0x63452c]
test ecx, ecx
jne 0x40b592
mov eax, 0x615bcc
jmp 0x40b5b5
cmp ecx, 1
jne 0x40b59e
mov eax, 0x615bd0
jmp 0x40b5b5
cmp ecx, 2
jne 0x40b5aa
mov eax, 0x615bd8
jmp 0x40b5b5
cmp ecx, 3
mov eax, 0x615bdc
cmovne eax, edx
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b5e0
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp byte [esi + 3], 0x31
jne 0x40b683
test cl, cl
je 0x40b640
movss xmm0, dword [ebx + 0xcc8]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x40b615
movaps xmm0, xmm2
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 1
push 0x614434
push 0x104
push 0xa13b68
call fcn.00407c70
add esp, 0x18
mov eax, 0xa13b68
jmp 0x40b645
mov eax, 0x614458
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b670
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp byte [esi + 3], 0x32
jne 0x40b71a
test cl, cl
je 0x40b6dd
movss xmm0, dword [ebx + 0xcc8]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x40b6a7
movaps xmm0, xmm2
jmp 0x40b6b2
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm3
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 1
push 0x614434
push 0x104
push 0xa13b68
call fcn.00407c70
add esp, 0x18
mov eax, 0xa13b68
jmp 0x40b6e2
mov eax, 0x614458
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b707
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp byte [esi + 3], 0x33
jne 0x40b7b3
test cl, cl
je 0x40b774
movss xmm0, dword [ebx + 0xcc8]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x40b73e
movaps xmm0, xmm2
jmp 0x40b749
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 1
push 0x614434
push 0x104
push 0xa13b68
call fcn.00407c70
add esp, 0x18
mov eax, 0xa13b68
jmp 0x40b779
mov eax, 0x614458
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b7a0
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp byte [esi + 3], 0x34
jne 0x40b84a
test cl, cl
je 0x40b80d
movss xmm0, dword [ebx + 0xcc8]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x40b7d7
movaps xmm0, xmm2
jmp 0x40b7e2
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm6
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 1
push 0x614434
push 0x104
push 0xa13b68
call fcn.00407c70
add esp, 0x18
mov eax, 0xa13b68
jmp 0x40b812
mov eax, 0x614458
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b837
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp byte [esi + 3], 0x44
jne 0x40b8c4
test cl, cl
je 0x40b887
movss xmm0, dword [ebx + 0xccc]
sub esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0
push 0x614434
push 0x104
push 0xa13b68
call fcn.00407c70
add esp, 0x18
mov eax, 0xa13b68
jmp 0x40b88c
mov eax, 0x614458
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b8b1
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp byte [esi + 3], 0x43
jne 0x40bab9
test cl, cl
je 0x40b9f6
movss xmm0, dword [ebx + 0xcc8]
movss xmm1, dword [ebx + 0xcbc]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x40b8f4
movaps xmm0, xmm2
jmp 0x40b8ff
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm3
cvtpd2ps xmm0, xmm0
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jnp 0x40b9c8
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x40b9c8
cvtps2pd xmm0, xmm0
cvtps2pd xmm3, xmm1
comisd xmm0, xmmword [0x616fe8]
movsd qword [ebp - 0x48], xmm3
jbe 0x40b997
movss xmm6, dword [0x6171a0]
comiss xmm6, xmm1
jb 0x40b997
movsd xmm1, qword [0x616ed8]
call fcn.00514080
movsd xmm3, qword [ebp - 0x48]
movaps xmm1, xmm0
mulsd xmm1, qword [0x617030]
movaps xmm2, xmm3
mulsd xmm2, qword [0x616f10]
mulsd xmm3, qword [0x616ef0]
movsd xmm4, qword [0x616f98]
addsd xmm2, qword [0x617040]
movsd xmm5, qword [0x617078]
mulsd xmm3, xmm0
subsd xmm2, xmm1
addsd xmm3, xmm2
movss xmm2, dword [0x6171d0]
cvtpd2ps xmm0, xmm3
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x40b9c8
mov eax, dword [0x634758]
test eax, eax
je 0x40b9cb
cmp eax, 1
jne 0x40b9c3
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm4
addsd xmm0, xmm5
cvtpd2ps xmm0, xmm0
jmp 0x40b9cb
xorps xmm0, xmm0
jmp 0x40b9cb
movaps xmm0, xmm2
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 1
push 0x614434
push 0x104
push 0xa13b68
call fcn.00407c70
add esp, 0x18
mov eax, 0xa13b68
jmp 0x40b9fb
mov eax, 0x614458
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ba20
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x48
jne 0x40bab9
cmp byte [esi + 3], 0x55
jne 0x40bb43
test cl, cl
je 0x40ba7c
movss xmm0, dword [ebx + 0xcd0]
sub esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0
push 0x614434
push 0x104
push 0xa13b68
call fcn.00407c70
add esp, 0x18
mov eax, 0xa13b68
jmp 0x40ba81
mov eax, 0x614458
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40baa6
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x41
jne 0x40bb43
cmp byte [esi + 3], 0x50
jne 0x40bb43
test cl, cl
je 0x40bb02
movss xmm0, dword [ebx + 0xcd4]
sub esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0
push 0x614434
push 0x104
push 0xa13b68
call fcn.00407c70
add esp, 0x18
mov eax, 0xa13b68
jmp 0x40bb07
mov eax, 0x614458
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40bb30
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp byte [esi + 2], 0x53
jne 0x40beb9
cmp byte [esi + 3], 0x53
jne 0x40beb9
movsx eax, byte [esi + 4]
push eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
call fcn.00504070
add esp, 4
test eax, eax
je 0x40bb87
movsx eax, byte [esi + 4]
sub eax, 0x30
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x2c], eax
movsx eax, byte [esi + 5]
push eax
call fcn.00504070
add esp, 4
test eax, eax
je 0x40bbae
mov eax, dword [ebp - 0x2c]
lea ecx, [eax + eax*4]
movsx eax, byte [esi + 5]
lea eax, [eax + ecx*2]
add eax, 0xffffffd0
inc dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
movsx eax, byte [esi + 6]
push eax
call fcn.00504070
add esp, 4
test eax, eax
mov eax, dword [ebp - 0x2c]
je 0x40bbd2
lea ecx, [eax + eax*4]
movsx eax, byte [esi + 6]
lea eax, [eax + ecx*2]
add eax, 0xffffffd0
inc dword [ebp - 0x30]
mov byte [ebp - 0x53], al
lea eax, [ebp - 0x54]
push 0xffffffffffffffff
push eax
imul eax, dword [ebx + 0x104], 0x104
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40bc00
mov eax, dword [ebp - 0x30]
sub ecx, edx
add eax, 4
add edi, ecx
add esi, eax
jmp 0x40bebf
cmp al, 0x4c
jne 0x40bd11
mov al, byte [esi + 2]
cmp al, 0x48
jne 0x40bcb9
cmp byte [esi + 3], 0x4d
jne 0x40bc73
imul eax, dword [ebx + 0x104], 0x104
push 0xffffffffffffffff
push 0x614460
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40bc60
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp byte [esi + 3], 0x50
jne 0x40beb9
imul eax, dword [ebx + 0x104], 0x104
push 0xffffffffffffffff
push 0x614464
sub eax, edi
add eax, 0x310
add eax, ebx
push eax
push edi
call fcn.00508ec0
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40bca6
sub ecx, edx
add edi, ecx
add esi, 4
jmp 0x40bebf
cmp al, 0x4a
jne 0x40beb9
cmp byte [esi + 3], 0x4c
jne 0x40bcf3
imul eax, dword [ebx + 0x104], 0x104
mov byte [eax + ebx + 0x30f], 1
imul eax, dword [ebx + 0x104], 0x104
add esi, 4
mov byte [eax + ebx + 0x30e], 0
jmp 0x40bebf
cmp byte [esi + 3], 0x52
jne 0x40beb9
imul eax, dword [ebx + 0x104], 0x104
mov byte [eax + ebx + 0x30f], 2
jmp 0x40bcd9
cmp al, 0x4d
jne 0x40beb9
cmp byte [esi + 2], 0x45
jne 0x40beb9
cmp byte [esi + 3], 0x54
jne 0x40beb9
movsx eax, byte [esi + 4]
push eax
mov dword [ebp - 0x30], 4
mov dword [ebp - 0x58], 1
mov dword [ebp - 0x4c], 0x63
call fcn.00504070
add esp, 4
test eax, eax
je 0x40bd67
movsx eax, byte [esi + 4]
sub eax, 0x30
mov dword [ebp - 0x58], eax
mov eax, 5
mov dword [ebp - 0x30], eax
jmp 0x40bd6c
mov eax, 4
movsx eax, byte [eax + esi]
push eax
call fcn.00504070
mov edx, dword [ebp - 0x30]
add esp, 4
test eax, eax
je 0x40bd94
mov eax, dword [ebp - 0x58]
lea ecx, [eax + eax*4]
movsx eax, byte [edx + esi]
lea eax, [eax + ecx*2]
add eax, 0xffffffd0
inc edx
mov dword [ebp - 0x58], eax
cmp byte [edx + esi], 0x2d
jne 0x40beb9
movsx eax, byte [edx + esi + 1]
inc edx
push eax
mov dword [ebp - 0x30], edx
call fcn.00504070
add esp, 4
test eax, eax
mov eax, dword [ebp - 0x30]
je 0x40bdc5
movsx ecx, byte [eax + esi]
sub ecx, 0x30
inc eax
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x30], eax
movsx eax, byte [eax + esi]
push eax
call fcn.00504070
add esp, 4
test eax, eax
je 0x40bdf0
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x30]
lea ecx, [eax + eax*4]
movsx eax, byte [edx + esi]
lea eax, [eax + ecx*2]
add eax, 0xffffffd0
inc edx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x30], edx
cmp byte [ebp - 0x31], 0
je 0x40beac
mov eax, dword [ebp - 0x58]
lea ecx, [ebx + 0xcf0]
mov dword [ebp - 0x44], ecx
cmp eax, 1
jle 0x40be28
lea esi, [eax - 1]
nop
push 0x614238
push ecx
call fcn.0042eff0
add esp, 8
mov ecx, eax
sub esi, 1
jne 0x40be10
mov dword [ebp - 0x44], eax
mov esi, dword [ebp - 0x4c]
lea ecx, [ebx + 0xcf0]
test esi, esi
jle 0x40be5e
push 0x614238
push ecx
call fcn.0042eff0
add esp, 8
mov ecx, eax
mov edx, ecx
sub esi, 1
jne 0x40be35
lea eax, [ebx + 0xcf0]
cmp edx, eax
jbe 0x40be5e
cmp byte [edx], 0
je 0x40be5e
lea ecx, [edx - 1]
mov edx, dword [ebp - 0x44]
sub ecx, edx
imul esi, dword [ebx + 0x104], 0x104
mov eax, ecx
sub eax, ebx
sub eax, esi
add eax, 0xfffffdf4
add eax, edi
cmp eax, 0x104
jb 0x40be8d
mov ecx, ebx
sub ecx, edi
add ecx, 0x30f
add ecx, esi
xor esi, esi
test ecx, ecx
cmovns esi, ecx
push esi
push edx
push edi
call fcn.00500630
add edi, esi
mov esi, dword [ebp - 0x2c]
add esp, 0xc
add esi, dword [ebp - 0x30]
mov byte [edi], 0
jmp 0x40bebf
mov word [edi], 0x3f
add edi, 2
add esi, dword [ebp - 0x30]
jmp 0x40bebf
mov al, byte [esi]
mov byte [edi], al
inc edi
inc esi
mov dword [ebp - 0x2c], esi
mov al, byte [esi]
test al, al
je 0x40beda
mov cl, byte [ebp - 0x31]
jmp 0x40a41b
mov dword [ebx + 0x104], 7
mov byte [edi], 0
xor edi, edi
movsx eax, byte [ebx + 0xf19]
mov dword [ebx + 0xce8], 0
mov dword [ebx + 0xcec], eax
cmp dword [ebx + 0x104], edi
jl 0x40bf70
lea eax, [ebx + 0x20c]
lea esi, [ebx + 0xa4c]
mov dword [ebp - 0x44], eax
push ebx
lea ecx, [ebp - 0x60]
xor edx, edx
push ecx
push eax
xor ecx, ecx
call fcn.00409ca0
mov eax, dword [ebp - 0x5c]
add esp, 0xc
test eax, eax
jne 0x40bf3d
movsx eax, byte [ebx + 0xf19]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x60]
cmp ecx, dword [ebx + 0xce8]
jle 0x40bf4e
mov dword [ebx + 0xce8], ecx
mov dword [esi], eax
inc edi
mov dword [esi - 0x20], ecx
add esi, 4
add dword [ebx + 0xcec], eax
mov eax, dword [ebp - 0x44]
add eax, 0x104
mov dword [ebp - 0x44], eax
cmp edi, dword [ebx + 0x104]
jle 0x40bf11
movsx eax, byte [ebx + 0xf19]
mov ecx, dword [ebp - 4]
add dword [ebx + 0xce8], eax
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004fe8dc
mov esp, ebp
pop ebp
ret