Function at 0x45d710
Capabilities:
Check http status code

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b0058
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0xfd8
movsd xmm0, qword [0x4d4810]
mov eax, ecx
mov ecx, dword [ebx + 0x14]
xorps xmm1, xmm1
push esi
push edi
mov dword [ebp - 0x60], eax
mov edi, dword [ecx]
xor ecx, ecx
cmp byte [eax], 2
mov eax, dword [eax + 8]
cmove ecx, dword [0x4ddbb0]
xor esi, esi
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebx + 8]
add ecx, ecx
movsd qword [ebp - 0xb0], xmm0
movsd xmm0, qword [0x4d46a8]
movsd qword [ebp - 0xc0], xmm0
movsd xmm0, qword [0x4d46c0]
mov edx, dword [eax + ecx*8 + 0xc]
mov eax, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x5c], esi
movsd qword [ebp - 0x88], xmm1
movsd qword [ebp - 0xb8], xmm0
mov dword [ebp - 0x58], eax
cmp dword [edx + 8], 0x41
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x1c], edi
je 0x45f9f5
mov eax, 0x10
call fcn.004aea90
mov edx, dword [ebp - 0x38]
mov edi, esp
mov dword [ebp - 0x24], edi
movups xmm0, xmmword [edx]
movups xmmword [edi], xmm0
mov esi, dword [edi + 8]
mov dword [ebp - 0x2c], esi
cmp esi, 8
jge 0x45db76
cmp esi, 7
jne 0x45f6d9
mov edi, dword [edi + 4]
test edi, edi
je 0x45da04
mov eax, esp
xor esi, esi
mov edx, dword [eax]
mov dword [eax], 0x4b70dc
mov dword [eax + 8], esi
mov dword [ebp - 0x34], edx
mov ecx, dword [edx]
cmp ecx, edi
jne 0x45d871
movzx eax, word [edx + 0xa]
cmp word [edi + eax*2], si
jne 0x45d871
cmp byte [edx + 0x14], 0
je 0x45d871
mov eax, dword [edx + 4]
cmp byte [eax + 0x17], 0
jne 0x45d846
mov eax, dword [eax + 0xc]
test byte [eax + 0x15], 2
je 0x45d871
mov edi, dword [ebp - 0x24]
mov dword [edi + 8], 6
mov ecx, dword [edx + 4]
cmp byte [ecx + 0x17], 0
jne 0x45d862
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx]
mov dword [edi], ecx
push ecx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x45f6d9
test ecx, ecx
je 0x45d8f3
cmp edi, ecx
jae 0x45d89d
nop dword [eax]
cmp esi, 0xfd
jae 0x45d8a5
mov ax, word [edi]
add edi, 2
mov word [ebp + esi*2 - 0x2c0], ax
inc esi
mov ecx, dword [edx]
cmp edi, ecx
jb 0x45d880
cmp esi, 0xfd
jb 0x45d8ad
cmp edi, ecx
jb 0x45d934
mov ecx, dword [edx + 4]
push 0
call fcn.0047fed0
mov ecx, 0xfd
sub ecx, esi
cmp eax, ecx
ja 0x45d95a
mov ecx, dword [ebp - 0x34]
lea eax, [ebp - 0x2c0]
lea eax, [eax + esi*2]
push eax
mov ecx, dword [ecx + 4]
call fcn.0047fed0
mov edx, dword [ebp - 0x34]
add esi, eax
movzx eax, word [edx + 0xa]
add edx, 0xc
mov dword [ebp - 0x34], edx
mov ecx, dword [edx]
lea edi, [edi + eax*2]
test ecx, ecx
jne 0x45d875
movzx eax, word [edi]
test ax, ax
je 0x45d91c
nop dword [eax + eax]
cmp esi, 0xfd
jae 0x45d924
add edi, 2
mov word [ebp + esi*2 - 0x2c0], ax
inc esi
movzx eax, word [edi]
test ax, ax
jne 0x45d900
cmp esi, 0xfd
jb 0x45d92a
cmp word [edi], 0
jne 0x45d934
test esi, esi
jne 0x45d95f
cmp byte [edx + 8], 0
jne 0x45d95f
cmp dword [edx], 0
je 0x45d948
nop dword [eax]
add edx, 0xc
cmp dword [edx], 0
jne 0x45d940
cmp byte [edx + 8], 0
jne 0x45ff19
mov edi, dword [ebp - 0x24]
jmp 0x45f6d9
mov edx, dword [ebp - 0x34]
jmp 0x45d934
xor eax, eax
mov word [ebp + esi*2 - 0x2c0], ax
cmp byte [edx + 8], al
je 0x45d9a5
mov edi, dword [ebp - 0x24]
mov dword [edi + 8], eax
lea eax, [esi*2 + 2]
call fcn.004ae980
mov esi, esp
lea ecx, [ebp - 0x2c0]
mov edx, esi
mov eax, ecx
sub edx, eax
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x45d990
jmp 0x45f6d7
cmp word [ebp - 0x2c0], ax
je 0x45fc76
lea eax, [ebp - 0x61]
mov ecx, 0x4ddca0
push eax
push 3
lea eax, [ebp - 0x94]
push eax
push esi
lea eax, [ebp - 0x2c0]
push eax
call fcn.004230f0
test eax, eax
jne 0x45d9fd
cmp byte [ebp - 0x61], al
mov ecx, 0x4ddca0
setne al
inc eax
push eax
push dword [ebp - 0x94]
lea eax, [ebp - 0x2c0]
push esi
push eax
call fcn.00423370
test eax, eax
je 0x45fc76
mov edi, dword [ebp - 0x24]
mov dword [edi], eax
jmp 0x45da07
mov edi, dword [ebp - 0x24]
mov ecx, dword [edi]
mov dl, byte [ecx + 0x17]
test dl, dl
jne 0x45da18
mov eax, dword [ecx + 0xc]
mov al, byte [eax + 0x17]
jmp 0x45da1a
mov al, dl
movzx eax, al
sub eax, 1
je 0x45da72
sub eax, 3
jne 0x45da9e
mov eax, dword [ecx + 0x10]
cmp eax, 0x448340
jne 0x45da4e
mov ecx, dword [0x4d98d8]
mov eax, dword [ecx + 8]
mov dword [edi], eax
mov eax, dword [ecx + 0xc]
mov dword [edi + 4], eax
mov dword [edi + 8], 1
jmp 0x45f6d9
cmp eax, 0x448d00
jne 0x45da9e
mov eax, dword [0x4d98d8]
mov eax, dword [eax + 0x38]
mov dword [edi], eax
mov dword [edi + 4], 0
mov dword [edi + 8], 1
jmp 0x45f6d9
cmp dword [0x4dcd98], 0
jne 0x45f501
test dl, dl
jne 0x45da88
mov eax, dword [ecx + 0xc]
jmp 0x45da8a
mov eax, ecx
test byte [eax + 0x15], 0xa
jne 0x45f501
cmp dword [eax + 0xc], 0
jne 0x45f501
push 0
call fcn.0047fed0
lea esi, [eax + 1]
cmp esi, 1
jne 0x45dadd
mov ecx, dword [edi]
mov al, byte [ecx + 0x17]
test al, al
jne 0x45dabc
mov eax, dword [ecx + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x45dacd
mov eax, 4
mov dword [edi + 8], eax
jmp 0x45f6d9
xor eax, eax
mov dword [edi], 0x4b70dc
mov dword [edi + 8], eax
jmp 0x45f6d9
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 0x54]
mov ecx, edx
sub ecx, dword [eax]
mov eax, dword [ebx + 0x1c]
sar ecx, 1
mov eax, dword [eax]
sub eax, ecx
cmp esi, eax
ja 0x45db01
mov eax, edx
lea edx, [edx + esi*2]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x54], edx
jmp 0x45db56
cmp esi, 0x1001
jae 0x45db24
cmp dword [ebp - 0x5c], 0x9c40
jae 0x45db24
lea eax, [esi + esi]
call fcn.004ae980
add dword [ebp - 0x5c], esi
mov eax, esp
mov dword [ebp - 0x34], eax
jmp 0x45db56
cmp dword [ebp - 0x44], 0xc8
je 0x45f89c
lea eax, [esi + esi]
push eax
call fcn.004997ae
mov ecx, dword [ebp - 0x44]
add esp, 4
mov dword [ebp - 0x34], eax
mov dword [ebp + ecx*4 - 0x5e0], eax
test eax, eax
je 0x45f89c
inc ecx
mov dword [ebp - 0x44], ecx
mov ecx, dword [edi]
push eax
call fcn.0047fed0
mov eax, dword [ebp - 0x34]
mov dword [edi], eax
mov dword [edi + 4], 0
mov dword [edi + 8], 5
jmp 0x45f6d9
cmp esi, 0x3e
jne 0x45df84
mov eax, dword [edi]
mov edx, dword [eax + 4]
movzx esi, byte [eax + 9]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x3c], edx
cmp esi, eax
jg 0x45ff19
sub eax, esi
lea ecx, [ebp - 0xde0]
mov dword [ebp - 0x30], eax
lea ecx, [ecx + eax*4]
mov dword [ebp - 0x34], ecx
test edx, edx
jne 0x45dc33
test eax, eax
je 0x45ff19
mov ecx, dword [ebp + eax*4 - 0xde4]
dec eax
mov dword [ebp - 0x30], eax
call fcn.004548d0
mov edx, eax
mov dword [ebp - 0x3c], edx
test edx, edx
jne 0x45dc1f
test esi, esi
je 0x45dbef
lea eax, [esi*4]
push eax
mov eax, dword [ebp - 0x34]
push eax
add eax, 4
push eax
call fcn.00498760
add esp, 0xc
inc dword [ebp - 0x68]
mov eax, 0x10
call fcn.004ae980
mov ecx, dword [ebp - 0x34]
mov eax, esp
mov edx, 0x4db238
mov dword [ebp - 0x3c], edx
mov dword [ecx], eax
mov dword [eax + 8], 0
mov eax, dword [ecx]
sub ecx, 4
add esi, 2
mov dword [eax], 0x4b70dc
jmp 0x45dc22
mov ecx, dword [ebp - 0x34]
cmp esi, dword [edx + 0x14]
jge 0x45dc33
mov eax, dword [edi]
cmp byte [eax + 8], 2
jne 0x45ff19
lea eax, [ebp - 0x2c0]
mov dword [ebp - 0x50], 0
mov dword [edi + 4], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x8c], eax
mov dword [edi + 0xc], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 4], 0
mov eax, dword [edi]
cmp byte [eax + 8], 2
sete al
movzx eax, al
push eax
push esi
mov esi, dword [ebx + 0xc]
lea eax, [ebp - 0x50]
push ecx
push edi
push esi
push eax
mov ecx, edx
call fcn.00460320
test al, al
je 0x45f9bf
mov edx, dword [ebp - 0x60]
mov dword [0x4de2d4], edx
mov eax, dword [edi + 8]
cmp eax, 1
je 0x45df52
cmp eax, 2
je 0x45df52
cmp eax, 6
je 0x45df52
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
test ecx, ecx
jne 0x45dcdb
cmp dword [eax + 0x18], 0x41
jne 0x45dcdb
cmp byte [edx], 3
mov dword [ebp - 0x34], 1
je 0x45f8a6
mov esi, dword [ebp - 0x6c]
jmp 0x45dd0e
cmp dword [eax + 0x18], 0x13
mov dword [ebp - 0x34], 0
jne 0x45dd0c
test ecx, ecx
je 0x45dd0c
mov esi, dword [ebp + ecx*4 - 0xde4]
cmp dword [esi + 8], 4
jne 0x45dd0c
mov esi, dword [esi]
mov al, byte [esi + 0x17]
test al, al
jne 0x45dd08
mov eax, dword [esi + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
je 0x45dd0e
xor esi, esi
mov edx, dword [edi]
mov dword [ebp - 0x2c], edx
test esi, esi
je 0x45ddd7
mov eax, dword [0x4d98d8]
mov ecx, dword [ebp - 0x3c]
cmp dword [eax + 0xb4], ecx
jne 0x45dd38
mov al, byte [esi + 0x16]
and al, 0x22
cmp al, 2
je 0x45ddd7
mov eax, dword [edi + 0xc]
cmp eax, edx
jne 0x45dd4c
push dword [edi + 4]
mov ecx, esi
push eax
call fcn.00480230
jmp 0x45dda6
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x2c], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45dd54
sub ecx, dword [ebp - 0x2c]
sar ecx, 1
cmp edx, dword [0x4dcf28]
jne 0x45dd90
cmp ecx, 0x40
jb 0x45dd90
push ecx
push edx
mov ecx, esi
call fcn.00480230
mov dword [0x4dcf28], 0
mov dword [0x4dcf24], 0
jmp 0x45dda6
push 1
push 0
push 0xffffffffffffffff
push edx
mov ecx, esi
call fcn.0047faa0
test eax, eax
je 0x45f953
cmp dword [ebp - 0x34], 0
jne 0x45f947
mov eax, dword [ebp - 0x38]
dec dword [ebp - 0x30]
add eax, 0x10
mov dword [ebp - 0x38], eax
mov eax, dword [eax + 0xc]
mov dword [edi + 0xc], eax
mov dword [edi], esi
mov dword [edi + 8], 4
mov dword [ebp - 4], 6
jmp 0x45df62
mov ecx, dword [edi + 0xc]
mov eax, 1
test ecx, ecx
je 0x45de03
mov eax, dword [ebp - 0x44]
cmp eax, 0xc8
je 0x45f983
mov dword [ebp + eax*4 - 0x5e0], ecx
inc eax
mov dword [ebp - 0x44], eax
xor eax, eax
cmp ecx, edx
setne al
mov ecx, dword [ebp - 0x8c]
mov dword [edi + 0xc], ecx
cmp word [edx], 0
jne 0x45de32
mov dword [edi], 0x4b70dc
mov dword [edi + 8], 5
mov dword [edi + 4], 0
mov dword [ebp - 4], 8
jmp 0x45df62
mov ecx, dword [ebp - 0x3c]
cmp byte [ecx + 0x3d], 0
je 0x45de48
mov esi, dword [ebp - 0x34]
xor esi, 1
test eax, eax
cmove esi, eax
jmp 0x45de7b
cmp edx, dword [0x4dcf28]
jne 0x45de76
xor esi, esi
cmp dword [ebp - 0x34], esi
jne 0x45de7b
mov ecx, dword [ebp - 0x38]
add ecx, 0x18
mov eax, dword [ecx]
cmp eax, 0x41
je 0x45de7b
cmp eax, 0x3e
je 0x45de76
mov eax, dword [ecx + 0x10]
add ecx, 0x10
cmp eax, 0x41
jne 0x45de64
jmp 0x45de7b
mov esi, 1
mov dword [edi + 4], 0
mov dword [edi + 8], 5
test esi, esi
je 0x45df47
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45de96
mov eax, dword [ebx + 0x18]
sub ecx, esi
sar ecx, 1
lea esi, [ecx + 1]
mov ecx, dword [ebp - 0x54]
sub ecx, dword [eax]
mov eax, dword [ebx + 0x1c]
sar ecx, 1
mov eax, dword [eax]
sub eax, ecx
cmp esi, eax
ja 0x45ded3
add esi, esi
push esi
push edx
push dword [ebp - 0x54]
call fcn.00498e20
add esp, 0xc
mov dword [edi], eax
add dword [ebp - 0x54], esi
jmp 0x45df49
cmp esi, 0x1001
jae 0x45df05
cmp dword [ebp - 0x5c], 0x9c40
jae 0x45df05
lea eax, [esi + esi]
call fcn.004ae980
mov ecx, esp
lea eax, [esi + esi]
push eax
push dword [ebp - 0x2c]
push ecx
call fcn.00498e20
add esp, 0xc
mov dword [edi], eax
add dword [ebp - 0x5c], esi
jmp 0x45df49
cmp dword [ebp - 0x44], 0xc8
je 0x45f9a1
lea eax, [esi + esi]
push eax
call fcn.004997ae
mov ecx, dword [ebp - 0x44]
add esp, 4
mov dword [ebp + ecx*4 - 0x5e0], eax
test eax, eax
je 0x45f9a1
lea ecx, [esi + esi]
push ecx
push dword [ebp - 0x2c]
push eax
call fcn.00498e20
add esp, 0xc
mov dword [edi], eax
inc dword [ebp - 0x44]
jmp 0x45df49
mov dword [edi], edx
mov dword [ebp - 4], 0xa
jmp 0x45df62
mov ecx, dword [ebp - 0x8c]
mov dword [edi + 0xc], ecx
mov dword [ebp - 4], 2
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x45df78
lea eax, [ebp - 0x48]
push eax
lea edx, [ebp - 0x4c]
call fcn.00480470
add esp, 4
mov dword [ebp - 4], 0xffffffff
jmp 0x45f6d9
cmp esi, 0x1f
jne 0x45dfba
cmp dword [edi + 0xc], 0
mov esi, dword [ebp - 0x30]
je 0x45f891
test esi, esi
je 0x45f891
mov eax, dword [ebp + esi*4 - 0xde4]
dec esi
mov dword [ebp - 0x30], esi
movups xmm0, xmmword [eax]
movups xmmword [edi], xmm0
mov eax, dword [edx + 0xc]
mov dword [edi + 0xc], eax
jmp 0x45f6e3
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x45ff19
mov ecx, dword [ebp + eax*4 - 0xde4]
dec eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], ecx
cmp dword [ecx + 8], 8
jge 0x45ff19
cmp esi, 0x20
jne 0x45e008
mov edx, dword [edi + 0xc]
mov dword [ebp - 0x38], edx
test edx, edx
je 0x45ff19
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
mov dword [ecx + 8], 1
jmp 0x45f6d9
lea eax, [esi - 0x12]
cmp eax, 0x27
ja case.0x45e017.20
movzx eax, byte [eax + 0x45ff58]
jmp dword [eax*4 + 0x45ff50]
mov eax, dword [ebp - 0x58]
jmp 0x45e034
call fcn.00454630
mov esi, dword [edi + 8]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x2c], esi
lea edx, [esi - 9]
mov dword [ebp - 0x34], 0
cmp edx, 0x34
ja case.0x45e04e.11
movzx edx, byte [edx + 0x45ff9c]
jmp dword [edx*4 + 0x45ff80]
mov edx, eax
call fcn.004544e0
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov dword [edi + 8], 1
jmp 0x45f6d9
mov edx, eax
call fcn.004544e0
test eax, eax
jne 0x45e08d
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], eax
jmp 0x45f6d9
xorps xmm0, xmm0
mov dword [edi + 8], 1
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x45f6d9
cmp eax, 1
jne 0x45e18f
mov eax, dword [ecx + 8]
dec eax
cmp eax, 5
ja case.0x45e0c2.3
jmp dword [eax*4 + 0x45ffd4]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
neg eax
mov dword [edi], eax
adc edx, 0
neg edx
mov dword [edi + 4], edx
mov edx, dword [ebp - 0x58]
mov dword [edi + 8], edx
jmp 0x45f6d9
mov edx, dword [ecx + 4]
test edx, edx
je case.0x45e0c2.3
mov eax, dword [edx]
mov edx, dword [edx + 4]
neg eax
mov dword [edi], eax
adc edx, 0
neg edx
mov dword [edi + 4], edx
mov edx, dword [ebp - 0x58]
mov dword [edi + 8], edx
jmp 0x45f6d9
movsd xmm0, qword [ecx]
call fcn.004af237
neg eax
mov dword [edi], eax
adc edx, 0
neg edx
mov dword [edi + 4], edx
mov edx, dword [ebp - 0x58]
mov dword [edi + 8], edx
jmp 0x45f6d9
mov ecx, dword [ecx]
push 1
call fcn.004154e0
neg eax
mov dword [edi], eax
adc edx, 0
neg edx
mov dword [edi + 4], edx
mov edx, dword [ebp - 0x58]
mov dword [edi + 8], edx
jmp 0x45f6d9
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
neg eax
mov dword [edi], eax
adc edx, 0
neg edx
mov dword [edi + 4], edx
mov edx, dword [ebp - 0x58]
mov dword [edi + 8], edx
jmp 0x45f6d9
mov ecx, dword [ecx]
call fcn.004151f0
neg eax
mov dword [edi], eax
adc edx, 0
neg edx
mov dword [edi + 4], edx
mov edx, dword [ebp - 0x58]
mov dword [edi + 8], edx
jmp 0x45f6d9
cmp eax, 2
jne 0x45e456
mov eax, dword [ecx + 8]
dec eax
cmp eax, 5
ja case.0x45e1a5.3
jmp dword [eax*4 + 0x45ffec]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.004af310
xorps xmm0, xmmword [ebp - 0xb0]
mov edx, dword [ebp - 0x58]
movsd qword [edi], xmm0
mov dword [edi + 8], edx
jmp 0x45f6d9
movsd xmm0, qword [ecx]
xorps xmm0, xmmword [ebp - 0xb0]
mov edx, dword [ebp - 0x58]
movsd qword [edi], xmm0
mov dword [edi + 8], edx
jmp 0x45f6d9
mov ecx, dword [ecx]
push 1
call fcn.004155a0
xorps xmm0, xmmword [ebp - 0xb0]
mov edx, dword [ebp - 0x58]
movsd qword [edi], xmm0
mov dword [edi + 8], edx
jmp 0x45f6d9
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x45e24a
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.004af310
xorps xmm0, xmmword [ebp - 0xb0]
mov edx, dword [ebp - 0x58]
movsd qword [edi], xmm0
mov dword [edi + 8], edx
jmp 0x45f6d9
movsd xmm0, qword [ebp - 0x88]
xorps xmm0, xmmword [ebp - 0xb0]
mov edx, dword [ebp - 0x58]
movsd qword [edi], xmm0
mov dword [edi + 8], edx
jmp 0x45f6d9
mov ecx, dword [ebp - 0x28]
push dword [ecx]
call fcn.004a10ef
mov edx, dword [ebp - 0x58]
add esp, 4
fstp qword [ebp - 0x20]
movsd xmm0, qword [ebp - 0x20]
xorps xmm0, xmmword [ebp - 0xb0]
movsd qword [edi], xmm0
mov dword [edi + 8], edx
jmp 0x45f6d9
cmp dword [ecx + 8], 4
jne 0x45e456
test eax, eax
je 0x45e360
cmp esi, 9
je 0x45e299
cmp esi, 0x3c
je 0x45e299
or eax, 0xffffffff
mov dword [ebp - 0x3c], eax
jmp 0x45e2a0
mov dword [ebp - 0x3c], 1
cmp dword [ebp - 0x58], 1
mov ecx, dword [ecx]
push 1
jne 0x45e2d1
call fcn.004154e0
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x3c]
cdq
add eax, ecx
mov dword [edi], ecx
mov ecx, dword [ebp - 0x28]
adc edx, esi
mov dword [edi + 4], esi
push edx
push eax
mov ecx, dword [ecx]
call fcn.004152f0
mov esi, dword [ebp - 0x2c]
jmp 0x45e2f1
call fcn.004155a0
movd xmm1, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x28]
cvtdq2pd xmm1, xmm1
movsd qword [edi], xmm0
mov ecx, dword [ecx]
addsd xmm1, xmm0
call fcn.00415370
cmp esi, 0x3c
jl 0x45e355
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov al, byte [ecx + 0x17]
test al, al
jne 0x45e308
mov eax, dword [ecx + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x45e31b
mov eax, 4
mov dword [edi], ecx
mov dword [edi + 8], eax
jmp 0x45f6d9
mov ecx, dword [ebp - 0x58]
cmp ecx, 1
jne 0x45e336
mov eax, dword [ebp - 0x3c]
cdq
add dword [edi], eax
mov eax, ecx
adc dword [edi + 4], edx
mov dword [edi + 8], eax
jmp 0x45f6d9
movd xmm1, dword [ebp - 0x3c]
mov eax, ecx
movsd xmm0, qword [edi]
cvtdq2pd xmm1, xmm1
addsd xmm0, xmm1
movsd qword [edi], xmm0
mov dword [edi + 8], eax
jmp 0x45f6d9
mov eax, dword [ebp - 0x58]
mov dword [edi + 8], eax
jmp 0x45f6d9
mov ecx, dword [ecx]
cmp byte [ecx + 0x17], 0
jne 0x45e36d
mov eax, dword [ecx + 0xc]
jmp 0x45e36f
mov eax, ecx
test byte [eax + 0x15], 4
je 0x45e380
push ecx
call fcn.00430a80
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
push 1
push 0
push 0xffffffffffffffff
push 0
call fcn.0047faa0
cmp esi, 0x3c
jl 0x45e456
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov al, byte [ecx + 0x17]
test al, al
jne 0x45e3a8
mov eax, dword [ecx + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x45e456
mov dword [edi], ecx
mov dword [edi + 8], 4
jmp 0x45f6d9
mov eax, dword [ecx + 8]
cmp eax, 4
jne 0x45e439
mov esi, dword [ecx]
mov dl, byte [esi + 0x17]
test dl, dl
jne 0x45e3d4
mov eax, dword [esi + 0xc]
jmp 0x45e3d6
mov eax, esi
test byte [eax + 0x15], 2
je 0x45e3fb
mov dword [edi + 8], 1
mov eax, dword [ecx]
cmp byte [eax + 0x17], 0
jne 0x45e3ee
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x45f6d9
test dl, dl
jne 0x45e402
mov esi, dword [esi + 0xc]
cmp byte [esi + 0x15], 0
jl 0x45e41c
mov ecx, esi
call fcn.00401330
mov al, byte [esi + 0x15]
mov ecx, dword [ebp - 0x28]
and al, 0xf
or al, 0x80
mov byte [esi + 0x15], al
push 0
mov dword [edi + 8], 1
mov ecx, dword [ecx]
push 1
call fcn.004014c0
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x45f6d9
cmp eax, 6
jne 0x45e456
mov dword [edi + 8], 1
mov eax, dword [ecx]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x45f6d9
test eax, eax
jne 0x45e468
mov dword [edi], 0x4b70dc
mov dword [edi + 8], 0
jmp 0x45f6d9
mov eax, dword [ecx + 8]
dec eax
cmp eax, 5
ja case.0x45e471.3
jmp dword [eax*4 + 0x460004]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x45e4c2
mov edx, dword [ecx + 4]
test edx, edx
je case.0x45e471.3
mov eax, dword [edx]
mov edx, dword [edx + 4]
jmp 0x45e4c2
movsd xmm0, qword [ecx]
call fcn.004af237
jmp 0x45e4c2
mov ecx, dword [ecx]
xor eax, eax
cmp dword [ebp - 0x58], 1
sete al
push eax
call fcn.004154e0
jmp 0x45e4c2
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
jmp 0x45e4c2
mov ecx, dword [ecx]
call fcn.004151f0
cmp dword [edi + 8], 0x38
jne 0x45e501
test edx, edx
ja 0x45e4ea
jb 0x45e4d3
cmp eax, 0xffffffff
ja 0x45e4ea
mov ecx, edi
not eax
xor edx, edx
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [edi + 8], 1
jmp 0x45f6d9
mov ecx, edi
not eax
not edx
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [edi + 8], 1
jmp 0x45f6d9
cmp eax, 0x1000
jae 0x45e529
mov ecx, edi
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [edi + 8], 1
jmp 0x45f6d9
movzx eax, byte [eax]
mov ecx, edi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [edi + 8], 1
jmp 0x45f6d9
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x45ff19
mov edx, dword [ebp + eax*4 - 0xde4]
dec eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x40], edx
mov ecx, dword [edx + 8]
cmp ecx, 8
jge 0x45ff19
cmp esi, 0x12
jne 0x45e590
movups xmm0, xmmword [edx]
mov eax, dword [ebp - 0x38]
movups xmmword [edi], xmm0
cmp dword [edi + 8], 6
mov eax, dword [eax + 0xc]
mov dword [edi + 0xc], eax
jne 0x45f6d9
mov eax, dword [edi]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
jmp 0x45f6d9
mov eax, esi
cmp esi, 0x1e
jg 0x45e6b4
cmp esi, 0x13
jl 0x45e6b4
cmp ecx, 4
je 0x45e5bb
mov dword [edi], 0x4b70dc
mov dword [edi + 8], 0
jmp 0x45f6d9
lea ecx, [esi - 0x13]
mov eax, esi
cmp ecx, 0xb
ja case.default.0x45e5c9
jmp dword [ecx*4 + 0x46001c]
mov esi, dword [ebp - 0x28]
mov ecx, dword [edx]
push esi
call fcn.0047f2c0
test eax, eax
je 0x45fc76
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax]
mov al, byte [ecx + 0x17]
test al, al
jne 0x45e5f5
mov eax, dword [ecx + 0xc]
mov al, byte [eax + 0x17]
cmp al, 2
jne 0x45e3b0
movups xmm0, xmmword [esi]
mov eax, dword [ebp - 0x38]
movups xmmword [edi], xmm0
mov eax, dword [eax + 0xc]
mov dword [edi + 0xc], eax
jmp 0x45f6d9
mov dword [edi + 8], 0x31
mov eax, 0x31
jmp case.default.0x45e5c9
mov dword [edi + 8], 0x32
mov eax, 0x32
jmp case.default.0x45e5c9
mov dword [edi + 8], 0x33
mov eax, 0x33
jmp case.default.0x45e5c9
mov dword [edi + 8], 0x34
mov eax, 0x34
jmp case.default.0x45e5c9
mov dword [edi + 8], 0x35
mov eax, 0x35
jmp case.default.0x45e5c9
mov dword [edi + 8], 0x2c
mov eax, 0x2c
jmp case.default.0x45e5c9
mov dword [edi + 8], 0x2d
mov eax, 0x2d
jmp case.default.0x45e5c9
mov dword [edi + 8], 0x2e
mov eax, 0x2e
jmp case.default.0x45e5c9
mov dword [edi + 8], 0x2f
mov eax, 0x2f
jmp case.default.0x45e5c9
mov dword [edi + 8], 0x30
mov eax, 0x30
jmp case.default.0x45e5c9
mov dword [edi + 8], 0x2b
mov eax, 0x2b
mov ecx, dword [edx]
mov dword [ebp - 0x34], ecx
cmp eax, 0x2b
je 0x45ee89
mov esi, dword [ebp - 0x58]
test esi, esi
je 0x45ee89
mov ecx, edx
call fcn.00454630
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x45ee89
cmp esi, 1
jne 0x45e6eb
cmp ecx, esi
jne 0x45e6eb
cmp dword [edi + 8], 0x34
jne 0x45e6fa
mov eax, dword [edi + 8]
sub eax, 0x2c
cmp eax, 4
ja 0x45eacc
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 8]
dec eax
cmp eax, 5
ja case.0x45e706.3
jmp dword [eax*4 + 0x46004c]
mov ecx, dword [edx]
mov dword [ebp - 0x28], ecx
mov ecx, dword [edx + 4]
mov dword [ebp - 0x24], ecx
jmp 0x45e76e
mov eax, dword [edx + 4]
test eax, eax
je case.0x45e706.3
mov ecx, dword [eax]
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x24], ecx
jmp 0x45e76e
movsd xmm0, qword [edx]
call fcn.004af237
jmp 0x45e768
mov ecx, dword [edx]
xor eax, eax
cmp esi, 1
sete al
push eax
call fcn.004154e0
jmp 0x45e768
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
jmp 0x45e771
mov ecx, dword [edx]
call fcn.004151f0
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 8]
dec eax
cmp eax, 5
ja case.0x45e77d.3
jmp dword [eax*4 + 0x460064]
mov ecx, dword [edx]
mov esi, dword [edx + 4]
jmp 0x45e7d1
mov esi, dword [edx + 4]
test esi, esi
je case.0x45e77d.3
mov ecx, dword [esi]
mov esi, dword [esi + 4]
jmp 0x45e7d1
movsd xmm0, qword [edx]
call fcn.004af237
jmp 0x45e7cd
xor eax, eax
cmp ecx, 1
mov ecx, dword [edx]
sete al
push eax
call fcn.004154e0
jmp 0x45e7cd
xorps xmm0, xmm0
movlpd qword [ebp - 0x80], xmm0
mov esi, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x80]
jmp 0x45e7d7
mov ecx, dword [edx]
call fcn.004151f0
mov ecx, eax
mov esi, edx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], esi
mov eax, dword [edi + 8]
add eax, 0xffffffdc
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x14], 1
cmp eax, 0x17
ja case.default.0x45e7f0
jmp dword [eax*4 + 0x46007c]
add ecx, dword [ebp - 0x28]
mov dword [edi], ecx
adc esi, dword [ebp - 0x24]
mov dword [edi + 4], esi
jmp case.0x45ebbe.47
sub ecx, dword [ebp - 0x28]
mov dword [edi], ecx
sbb esi, dword [ebp - 0x24]
mov dword [edi + 4], esi
jmp case.0x45ebbe.47
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push esi
push ecx
call fcn.004ae900
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x45ebbe.47
cmp ecx, dword [ebp - 0x28]
jne 0x45e849
cmp esi, dword [ebp - 0x24]
jne 0x45e849
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
cmp ecx, dword [ebp - 0x28]
jne 0x45e883
cmp esi, dword [ebp - 0x24]
jne 0x45e883
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
cmp esi, dword [ebp - 0x24]
jl 0x45e8b1
jg 0x45e8a0
cmp ecx, dword [ebp - 0x28]
jbe 0x45e8b1
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
cmp esi, dword [ebp - 0x24]
jg 0x45e8e6
jl 0x45e8d5
cmp ecx, dword [ebp - 0x28]
jae 0x45e8e6
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
cmp esi, dword [ebp - 0x24]
jl 0x45e91b
jg 0x45e90a
cmp ecx, dword [ebp - 0x28]
jb 0x45e91b
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
cmp esi, dword [ebp - 0x24]
jg 0x45e950
jl 0x45e93f
cmp ecx, dword [ebp - 0x28]
ja 0x45e950
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
and ecx, dword [ebp - 0x28]
and esi, dword [ebp - 0x24]
mov dword [edi], ecx
mov dword [edi + 4], esi
jmp case.0x45ebbe.47
or ecx, dword [ebp - 0x28]
or esi, dword [ebp - 0x24]
mov dword [edi], ecx
mov dword [edi + 4], esi
jmp case.0x45ebbe.47
xor ecx, dword [ebp - 0x28]
xor esi, dword [ebp - 0x24]
mov dword [edi], ecx
mov dword [edi + 4], esi
jmp case.0x45ebbe.47
movq xmm1, qword [ebp - 0x80]
movd xmm0, dword [ebp - 0x28]
psllq xmm1, xmm0
movq qword [edi], xmm1
jmp case.0x45ebbe.47
mov eax, ecx
mov edx, esi
mov ecx, dword [ebp - 0x28]
call fcn.004aefe0
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x45ebbe.47
mov edx, dword [ebp - 0x28]
mov eax, edx
or eax, dword [ebp - 0x24]
jne 0x45e9dc
mov dword [edi], 0x4b70dc
xor ecx, ecx
jmp 0x45f6a5
push dword [ebp - 0x24]
push edx
push esi
push ecx
call fcn.004aee70
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x45ebbe.47
mov eax, ecx
or eax, esi
jne 0x45ea10
cmp dword [ebp - 0x24], eax
jg 0x45ea2d
jl 0x45ea03
cmp dword [ebp - 0x28], eax
jae 0x45ea2d
mov dword [edi], 0x4b70dc
xor ecx, ecx
jmp 0x45f6a5
test esi, esi
jg 0x45ea2d
jl 0x45ea1a
test ecx, ecx
jae 0x45ea2d
neg ecx
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x40], ecx
adc esi, 0
neg esi
jmp 0x45ea34
mov dword [ebp - 0x2c], 0
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
call fcn.004af310
mov ecx, dword [ebp - 0x40]
sub esp, 8
mov edx, esi
movsd qword [esp], xmm0
call fcn.004af310
sub esp, 8
movsd qword [esp], xmm0
call fcn.00431970
cmp dword [ebp - 0x2c], 0
mov esi, dword [ebp - 0x28]
fstp qword [ebp - 0x20]
movsd xmm0, qword [ebp - 0x20]
movsd qword [ebp - 0x20], xmm0
movsd qword [edi], xmm0
je 0x45ea99
push 0
push 2
push dword [ebp - 0x24]
push esi
call fcn.004aef20
or eax, edx
je 0x45ea99
movsd xmm0, qword [ebp - 0x20]
xorps xmm0, xmmword [ebp - 0xb0]
movsd qword [edi], xmm0
cmp dword [ebp - 0x24], 0
jg 0x45eaaf
jl 0x45eaa5
test esi, esi
jae 0x45eaaf
mov ecx, 2
jmp 0x45f6a5
movsd xmm0, qword [edi]
call fcn.004af237
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x45ebbe.47
mov ecx, 1
jmp 0x45f6a5
mov esi, dword [ebp - 0x28]
mov eax, dword [esi + 8]
dec eax
cmp eax, 5
ja case.0x45ead8.3
jmp dword [eax*4 + 0x4600dc]
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.004af310
jmp 0x45eb32
movsd xmm0, qword [esi]
movsd qword [ebp - 0x20], xmm0
jmp 0x45eb3a
mov ecx, dword [esi]
xor eax, eax
cmp dword [ebp - 0x58], 2
sete al
push eax
call fcn.004155a0
jmp 0x45eb32
mov ecx, dword [esi + 4]
test ecx, ecx
je case.0x45ead8.3
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.004af310
jmp 0x45eb32
movsd xmm0, qword [ebp - 0x88]
movsd qword [ebp - 0x20], xmm0
jmp 0x45eb42
mov ecx, dword [esi]
call fcn.00415260
mov ecx, dword [ebp - 0x14]
movsd qword [ebp - 0x20], xmm0
movsd xmm0, qword [ebp - 0x88]
mov esi, dword [ebp - 0x40]
mov eax, dword [esi + 8]
dec eax
cmp eax, 5
ja case.0x45eb4e.3
jmp dword [eax*4 + 0x4600f4]
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.004af310
jmp case.0x45eb4e.6
movsd xmm1, qword [esi]
jmp 0x45eb96
xor eax, eax
cmp ecx, 2
mov ecx, dword [esi]
sete al
push eax
call fcn.004155a0
jmp case.0x45eb4e.6
mov ecx, dword [esi + 4]
test ecx, ecx
je case.0x45eb4e.3
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.004af310
jmp case.0x45eb4e.6
mov ecx, dword [esi]
call fcn.00415260
movaps xmm1, xmm0
mov ecx, dword [edi + 8]
mov edx, 6
lea eax, [ecx - 0x24]
cmp edx, eax
sbb esi, esi
neg esi
inc esi
mov dword [ebp - 0x14], esi
cmp eax, 0x17
ja case.0x45ebbe.47
movzx eax, byte [eax + 0x46013c]
mov dword [ebp - 0x14], esi
jmp dword [eax*4 + 0x46010c]
addsd xmm1, qword [ebp - 0x20]
mov dword [ebp - 0x14], esi
movsd qword [edi], xmm1
jmp case.0x45ebbe.47
subsd xmm1, qword [ebp - 0x20]
mov dword [ebp - 0x14], esi
movsd qword [edi], xmm1
jmp case.0x45ebbe.47
mulsd xmm1, qword [ebp - 0x20]
mov dword [ebp - 0x14], esi
movsd qword [edi], xmm1
jmp case.0x45ebbe.47
movsd xmm0, qword [ebp - 0x20]
ucomisd xmm0, qword [ebp - 0x88]
lahf
test ah, 0x44
jp 0x45ec18
mov dword [edi], 0x4b70dc
xor ecx, ecx
jmp 0x45f6a5
mov dword [ebp - 0x14], esi
divsd xmm1, xmm0
movsd qword [edi], xmm1
cmp ecx, 0x35
jne case.0x45ebbe.47
sub esp, 8
movsd qword [esp], xmm1
call fcn.004319d0
fstp qword [edi]
mov dword [ebp - 0x14], esi
jmp case.0x45ebbe.47
ucomisd xmm1, qword [ebp - 0x20]
lahf
test ah, 0x44
jp 0x45ec62
mov eax, 1
mov dword [ebp - 0x14], esi
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
xorps xmm0, xmm0
mov dword [ebp - 0x14], esi
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
ucomisd xmm1, qword [ebp - 0x20]
lahf
test ah, 0x44
jnp 0x45ec9c
mov eax, 1
mov dword [ebp - 0x14], esi
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
xorps xmm0, xmm0
mov dword [ebp - 0x14], esi
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
comisd xmm1, xmmword [ebp - 0x20]
jbe 0x45ecd2
mov eax, 1
mov dword [ebp - 0x14], esi
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
xorps xmm0, xmm0
mov dword [ebp - 0x14], esi
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
movsd xmm0, qword [ebp - 0x20]
comisd xmm0, xmm1
jbe 0x45ed0c
mov eax, 1
mov dword [ebp - 0x14], esi
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
xorps xmm0, xmm0
mov dword [ebp - 0x14], esi
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
comisd xmm1, xmmword [ebp - 0x20]
jb 0x45ed42
mov eax, 1
mov dword [ebp - 0x14], esi
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
xorps xmm0, xmm0
mov dword [ebp - 0x14], esi
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
movsd xmm0, qword [ebp - 0x20]
comisd xmm0, xmm1
jb 0x45ed7c
mov eax, 1
mov dword [ebp - 0x14], esi
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
xorps xmm0, xmm0
mov dword [ebp - 0x14], esi
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
movsd xmm3, qword [ebp - 0x88]
xor ecx, ecx
movsd xmm2, qword [ebp - 0x20]
comisd xmm3, xmm1
seta cl
ucomisd xmm1, xmm3
mov dword [ebp - 0x2c], ecx
lahf
test ah, 0x44
jp 0x45edc4
comisd xmm3, xmm2
ja 0x45ea03
test ecx, ecx
je 0x45ee0f
movsd xmm0, qword [ebp - 0xc0]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm2
call fcn.00431a00
fstp qword [ebp - 0x90]
movsd xmm0, qword [ebp - 0x90]
ucomisd xmm0, xmm3
lahf
test ah, 0x44
jnp 0x45ee08
mov dword [edi], 0x4b70dc
xor ecx, ecx
jmp 0x45f6a5
xorps xmm1, xmmword [ebp - 0xb0]
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.00431970
cmp dword [ebp - 0x2c], 0
mov ecx, esi
fstp qword [edi]
je 0x45f6a5
movsd xmm0, qword [ebp - 0xb8]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp], xmm0
call fcn.00431a00
sub esp, 8
fstp qword [esp]
call fcn.00431960
fstp qword [ebp - 0x20]
movsd xmm0, qword [ebp - 0x20]
ucomisd xmm0, qword [ebp - 0xc0]
lahf
test ah, 0x44
jp 0x45f6a5
movsd xmm0, qword [edi]
xorps xmm0, xmmword [ebp - 0xb0]
movsd qword [edi], xmm0
jmp 0x45f6a5
mov eax, dword [edi + 8]
add eax, 0xffffffdc
cmp eax, 2
ja 0x45ef83
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 8]
cmp eax, 6
jne 0x45eea7
mov esi, dword [ecx]
jmp 0x45eee6
cmp eax, 4
jne 0x45eee4
mov eax, dword [ecx]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x45eeba
mov edx, dword [eax + 0xc]
jmp 0x45eebc
mov edx, eax
test byte [edx + 0x15], 2
je 0x45eecd
test cl, cl
jne 0x45eec9
mov eax, dword [eax + 0xc]
mov esi, dword [eax]
jmp 0x45eee6
test cl, cl
jne 0x45eed6
mov ecx, dword [eax + 0xc]
jmp 0x45eed8
mov ecx, eax
test byte [ecx + 0x15], 4
je 0x45eee4
push eax
call fcn.00430a80
xor esi, esi
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 8]
cmp eax, 6
jne 0x45eef5
mov eax, dword [ecx]
jmp 0x45ef34
cmp eax, 4
jne 0x45ef32
mov eax, dword [ecx]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x45ef08
mov edx, dword [eax + 0xc]
jmp 0x45ef0a
mov edx, eax
test byte [edx + 0x15], 2
je 0x45ef1b
test cl, cl
jne 0x45ef17
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
jmp 0x45ef34
test cl, cl
jne 0x45ef24
mov ecx, dword [eax + 0xc]
jmp 0x45ef26
mov ecx, eax
test byte [ecx + 0x15], 4
je 0x45ef32
push eax
call fcn.00430a80
xor eax, eax
test esi, esi
jne 0x45ef3c
test eax, eax
je 0x45ef83
xor ecx, ecx
cmp esi, eax
sete cl
xor eax, eax
cmp dword [edi + 8], 0x26
setne al
cmp eax, ecx
jne 0x45ef64
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], eax
jmp 0x45f6d9
xorps xmm0, xmm0
mov dword [edi + 8], 1
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x45f6d9
mov ecx, dword [ebp - 0x28]
lea edx, [ebp - 0xfe0]
call fcn.004546a0
mov ecx, dword [ebp - 0x40]
lea edx, [ebp - 0x2c0]
mov esi, eax
call fcn.004546a0
mov ecx, dword [ebp - 0x24]
mov edi, eax
mov dword [ebp - 0x14], 1
mov ecx, dword [ecx + 8]
add ecx, 0xffffffdc
cmp ecx, 7
ja case.default.0x45efbc
jmp dword [ecx*4 + 0x460154]
mov eax, dword [0x4d98d8]
push esi
push edi
cmp byte [eax + 0xf2], 0
jne 0x45efdd
call fcn.00499643
add esp, 8
jmp 0x45efe0
call dword [ebp - 0x70]
test eax, eax
jne 0x45eff8
mov edi, dword [ebp - 0x24]
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
mov edi, dword [ebp - 0x24]
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
mov ax, word [edi]
cmp ax, word [esi]
jne 0x45f039
test ax, ax
je 0x45f035
mov ax, word [edi + 2]
cmp ax, word [esi + 2]
jne 0x45f039
add edi, 4
add esi, 4
test ax, ax
jne case.0x45efbc.37
xor eax, eax
jmp 0x45f03e
sbb eax, eax
or eax, 1
test eax, eax
jne 0x45f056
mov edi, dword [ebp - 0x24]
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
mov edi, dword [ebp - 0x24]
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
mov eax, dword [0x4d98d8]
mov al, byte [eax + 0xf2]
test al, al
jne 0x45f08e
push esi
push edi
call fcn.00499643
add esp, 8
mov ecx, eax
jmp 0x45f0cb
cmp al, 2
jne 0x45f0a0
push esi
push edi
call dword [ebp - 0x70]
mov ecx, eax
jmp 0x45f0cb
mov ax, word [edi]
cmp ax, word [esi]
jne 0x45f0c6
test ax, ax
je 0x45f0c2
mov ax, word [edi + 2]
cmp ax, word [esi + 2]
jne 0x45f0c6
add edi, 4
add esi, 4
test ax, ax
jne 0x45f0a0
xor ecx, ecx
jmp 0x45f0cb
sbb ecx, ecx
or ecx, 1
mov edi, dword [ebp - 0x24]
xor eax, eax
test ecx, ecx
setne al
mov dword [edi], eax
mov dword [edi + 4], 0
jmp case.0x45ebbe.47
mov eax, dword [0x4d98d8]
mov al, byte [eax + 0xf2]
test al, al
jne 0x45f0fe
push esi
push edi
call fcn.00499643
add esp, 8
jmp 0x45f13b
cmp al, 2
jne 0x45f110
push esi
push edi
call dword [ebp - 0x70]
jmp 0x45f13b
mov ax, word [edi]
cmp ax, word [esi]
jne 0x45f136
test ax, ax
je 0x45f132
mov ax, word [edi + 2]
cmp ax, word [esi + 2]
jne 0x45f136
add edi, 4
add esi, 4
test ax, ax
jne 0x45f110
xor eax, eax
jmp 0x45f13b
sbb eax, eax
or eax, 1
test eax, eax
jle 0x45f153
mov edi, dword [ebp - 0x24]
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
mov edi, dword [ebp - 0x24]
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
mov eax, dword [0x4d98d8]
mov al, byte [eax + 0xf2]
test al, al
jne 0x45f189
push esi
push edi
call fcn.00499643
add esp, 8
jmp 0x45f1bf
cmp al, 2
jne 0x45f194
push esi
push edi
call dword [ebp - 0x70]
jmp 0x45f1bf
mov ax, word [edi]
cmp ax, word [esi]
jne 0x45f1ba
test ax, ax
je 0x45f1b6
mov ax, word [edi + 2]
cmp ax, word [esi + 2]
jne 0x45f1ba
add edi, 4
add esi, 4
test ax, ax
jne 0x45f194
xor eax, eax
jmp 0x45f1bf
sbb eax, eax
or eax, 1
test eax, eax
jns 0x45f1d7
mov edi, dword [ebp - 0x24]
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
mov edi, dword [ebp - 0x24]
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
mov eax, dword [0x4d98d8]
mov al, byte [eax + 0xf2]
test al, al
jne 0x45f20d
push esi
push edi
call fcn.00499643
add esp, 8
jmp 0x45f243
cmp al, 2
jne 0x45f218
push esi
push edi
call dword [ebp - 0x70]
jmp 0x45f243
mov ax, word [edi]
cmp ax, word [esi]
jne 0x45f23e
test ax, ax
je 0x45f23a
mov ax, word [edi + 2]
cmp ax, word [esi + 2]
jne 0x45f23e
add edi, 4
add esi, 4
test ax, ax
jne 0x45f218
xor eax, eax
jmp 0x45f243
sbb eax, eax
or eax, 1
cmp eax, 0xffffffff
jle 0x45f25c
mov edi, dword [ebp - 0x24]
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
mov edi, dword [ebp - 0x24]
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
mov eax, dword [0x4d98d8]
mov al, byte [eax + 0xf2]
test al, al
jne 0x45f292
push esi
push edi
call fcn.00499643
add esp, 8
jmp 0x45f2cb
cmp al, 2
jne 0x45f2a0
push esi
push edi
call dword [ebp - 0x70]
jmp 0x45f2cb
mov ax, word [edi]
cmp ax, word [esi]
jne 0x45f2c6
test ax, ax
je 0x45f2c2
mov ax, word [edi + 2]
cmp ax, word [esi + 2]
jne 0x45f2c6
add edi, 4
add esi, 4
test ax, ax
jne 0x45f2a0
xor eax, eax
jmp 0x45f2cb
sbb eax, eax
or eax, 1
cmp eax, 1
jge 0x45f2e4
mov edi, dword [ebp - 0x24]
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
mov edi, dword [ebp - 0x24]
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.0x45ebbe.47
mov eax, dword [ebp - 0x28]
cmp dword [eax + 8], 4
jne 0x45f35f
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
cmp byte [eax + 0x17], 0
jne 0x45f319
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x2c], eax
cmp byte [eax + 0x17], 1
jne 0x45f33d
mov cl, byte [eax + 0x15]
test cl, 1
jne 0x45f33d
test cl, 8
je 0x45f336
mov ecx, eax
call fcn.00401330
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax + 0xc]
shr edx, 1
jmp 0x45f373
push 0
push 1
mov ecx, eax
call fcn.004014c0
mov edx, eax
lea eax, [edx + 2]
nop dword [eax]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x45f350
sub edx, eax
jmp 0x45f371
mov edx, esi
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x45f364
sub edx, ecx
sar edx, 1
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x74], edx
test eax, eax
je 0x45f39e
push edx
push esi
mov ecx, eax
call fcn.00480160
test eax, eax
je 0x45f39e
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x34]
mov dword [edi], eax
mov dword [edi + 8], 4
jmp 0x45f6d9
mov eax, dword [ebp - 0x40]
cmp dword [eax + 8], 4
jne 0x45f3ff
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
cmp byte [eax + 0x17], 0
jne 0x45f3b8
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x2c], eax
cmp byte [eax + 0x17], 1
jne 0x45f3dc
mov cl, byte [eax + 0x15]
test cl, 1
jne 0x45f3dc
test cl, 8
je 0x45f3d5
mov ecx, eax
call fcn.00401330
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax + 0xc]
shr edx, 1
jmp 0x45f413
push 0
push 1
mov ecx, eax
call fcn.004014c0
mov edx, eax
lea eax, [edx + 2]
nop dword [eax]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x45f3f0
sub edx, eax
jmp 0x45f411
mov edx, edi
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x45f404
sub edx, ecx
sar edx, 1
mov eax, dword [ebp - 0x74]
add eax, edx
mov dword [ebp - 0x3c], edx
cmp dword [ebp - 0x34], 0
mov dword [ebp - 0x2c], eax
jne 0x45f5a6
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
test edx, edx
je 0x45f450
test ecx, ecx
jne 0x45f450
cmp dword [eax + 0x18], 0x41
jne 0x45f450
mov eax, edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x8c], 1
jmp 0x45f49b
cmp dword [eax + 0x18], 0x13
jne 0x45f5a6
test ecx, ecx
je 0x45f5a6
mov eax, dword [ebp + ecx*4 - 0xde4]
cmp dword [eax + 8], 4
jne 0x45f5a6
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x45f488
mov eax, dword [eax + 0xc]
mov cl, byte [eax + 0x17]
mov eax, dword [ebp - 0x14]
cmp cl, 1
jne 0x45f5a6
mov dword [ebp - 0x8c], 0
test eax, eax
je 0x45f5a6
push 0
push 0
mov ecx, eax
call fcn.004014c0
xor ecx, ecx
cmp eax, 0x4ddc74
cmove eax, ecx
cmp eax, edi
jne 0x45f50d
push dword [ebp - 0x74]
mov ecx, dword [ebp - 0x14]
push esi
call fcn.00480160
test eax, eax
je 0x45f5a6
cmp dword [ebp - 0x8c], 0
jne case.0x45fac9.6
mov eax, dword [ebp - 0x38]
mov edi, dword [ebp - 0x24]
add eax, 0x10
mov dword [ebp - 0x38], eax
mov eax, dword [eax + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [ebp - 0x30]
dec eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + eax*4 - 0xde0]
mov eax, dword [eax]
mov dword [edi], eax
mov dword [edi + 8], 4
jmp 0x45f6d9
cmp eax, esi
je 0x45f5a6
mov ecx, dword [ebp - 0x14]
push 1
push 0
push dword [ebp - 0x2c]
push 0
call fcn.0047faa0
test eax, eax
je 0x45fc76
mov ecx, dword [ebp - 0x14]
push 0
push 1
call fcn.004014c0
mov edx, eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], edx
test eax, eax
je 0x45f557
lea ecx, [eax + eax]
push ecx
push edi
push edx
call fcn.00498e20
mov edx, dword [ebp - 0x2c]
add esp, 0xc
mov eax, dword [ebp - 0x74]
lea eax, [eax*2 + 2]
push eax
mov eax, dword [ebp - 0x3c]
push esi
lea eax, [edx + eax*2]
push eax
call fcn.00498e20
mov eax, dword [ebp - 0x14]
add esp, 0xc
cmp byte [eax + 0x17], 0
jne 0x45f57e
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x17], 2
jne 0x45f59d
cmp dword [0x4de7ec], 0
je 0x45f59d
push ecx
mov ecx, 0x4de7e0
call fcn.00405590
jmp 0x45f4d0
and byte [eax + 0x15], 0x86
jmp 0x45f4d0
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp - 0x54]
sub ecx, dword [eax]
mov eax, dword [ebx + 0x1c]
sar ecx, 1
mov eax, dword [eax]
sub eax, ecx
mov ecx, dword [ebp - 0x2c]
inc ecx
cmp ecx, eax
ja 0x45f5d2
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x24]
mov dword [eax], edx
lea edx, [edx + ecx*2]
mov dword [ebp - 0x54], edx
mov edx, dword [ebp - 0x1c]
jmp 0x45f631
cmp ecx, 0x1001
jae 0x45f5fb
cmp dword [ebp - 0x5c], 0x9c40
jae 0x45f5fb
lea eax, [ecx + ecx]
call fcn.004ae980
mov eax, dword [ebp - 0x24]
mov edx, esp
mov dword [eax], edx
mov eax, dword [ebp - 0x2c]
inc eax
add dword [ebp - 0x5c], eax
jmp 0x45f631
cmp dword [ebp - 0x44], 0xc8
je 0x45fc62
lea eax, [ecx + ecx]
push eax
call fcn.004997ae
mov ecx, dword [ebp - 0x44]
mov edx, eax
mov eax, dword [ebp - 0x24]
add esp, 4
mov dword [ebp + ecx*4 - 0x5e0], edx
mov dword [eax], edx
test edx, edx
je 0x45fc62
inc ecx
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x45f64c
add eax, eax
push eax
push edi
push edx
call fcn.00498e20
mov edi, dword [ebp - 0x24]
add esp, 0xc
mov edx, dword [edi]
jmp 0x45f64f
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x74]
lea eax, [eax*2 + 2]
push eax
mov eax, dword [ebp - 0x3c]
push esi
lea eax, [edx + eax*2]
push eax
call fcn.00498e20
mov eax, dword [ebp - 0x40]
add esp, 0xc
cmp dword [eax + 8], 0
je 0x45ea09
mov eax, dword [ebp - 0x28]
cmp dword [eax + 8], 0
je 0x45ea09
mov ecx, 5
mov dword [edi + 4], 0
jmp 0x45f6a5
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x14], 0
mov dword [edi], 0x4b70dc
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x34]
mov dword [edi + 8], ecx
test esi, esi
je 0x45f6d9
push edi
mov ecx, esi
call fcn.0047f2c0
test eax, eax
je 0x45fc76
mov al, byte [esi + 0x17]
test al, al
jne 0x45f6cc
mov eax, dword [esi + 0xc]
mov al, byte [eax + 0x17]
cmp al, 2
je 0x45f6d9
mov dword [edi + 8], 4
mov dword [edi], esi
cmp dword [edi + 0xc], 0
je 0x45f854
mov ecx, edi
call fcn.00454630
mov ecx, dword [edi + 8]
sub eax, 1
je 0x45f7f0
sub eax, 1
je 0x45f736
cmp ecx, 6
je 0x45f837
cmp ecx, 4
jne 0x45f71e
mov eax, dword [edi]
cmp byte [eax + 0x17], 0
jne 0x45f714
mov eax, dword [eax + 0xc]
test byte [eax + 0x15], 2
jne 0x45f837
xor edx, edx
mov ecx, edi
call fcn.004546a0
xor ecx, ecx
cmp word [eax], cx
setne cl
mov dword [ebp - 0x1c], ecx
mov esi, ecx
jmp 0x45f799
dec ecx
cmp ecx, 5
ja case.0x45f73c.3
jmp dword [ecx*4 + 0x460174]
mov edx, dword [edi + 4]
mov ecx, dword [edi]
call fcn.004af310
jmp 0x45f785
movsd xmm0, qword [edi]
jmp 0x45f785
mov ecx, dword [edi]
push 1
call fcn.004155a0
jmp 0x45f785
mov ecx, dword [edi + 4]
test ecx, ecx
je case.0x45f73c.3
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.004af310
jmp 0x45f785
push dword [edi]
call fcn.004a10ef
fstp qword [ebp - 0x20]
movsd xmm0, qword [ebp - 0x20]
add esp, 4
ucomisd xmm0, qword [ebp - 0x88]
lahf
test ah, 0x44
jp 0x45f837
xor esi, esi
cmp dword [edi + 8], 6
jne 0x45f7a7
mov eax, dword [edi]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ecx, dword [edi + 0xc]
mov edx, dword [ebp - 0x38]
cmp dword [ecx + 8], 0x20
je 0x45f841
xor eax, eax
cmp dword [ecx + 8], 0x21
sete al
cmp esi, eax
jne 0x45f846
mov edx, ecx
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x38], edx
test ecx, ecx
je 0x45f7da
cmp dword [ecx + 8], 0x20
jne 0x45f7b7
mov dword [edi + 8], 1
mov dword [edi + 4], 0
mov dword [edi + 0xc], ecx
jmp 0x45f6d7
dec ecx
cmp ecx, 5
ja case.0x45f7f6.3
jmp dword [ecx*4 + 0x46018c]
mov eax, dword [edi]
mov edx, dword [edi + 4]
jmp 0x45f82f
mov edx, dword [edi + 4]
test edx, edx
je case.0x45f7f6.3
mov eax, dword [edx]
mov edx, dword [edx + 4]
jmp 0x45f82f
movsd xmm0, qword [edi]
call fcn.004af237
jmp 0x45f82f
mov ecx, dword [edi]
push 1
call fcn.004154e0
jmp 0x45f82f
mov ecx, dword [edi]
call fcn.004151f0
or eax, edx
je case.0x45f7f6.6
mov esi, 1
jmp 0x45f799
test esi, esi
cmove edx, ecx
mov esi, dword [ebp - 0x30]
add edx, 0x10
mov edi, dword [ebp - 0x54]
jmp 0x45d7c7
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x68]
cmp eax, esi
jle 0x45f880
nop
dec eax
mov dword [ebp - 0x68], eax
mov eax, dword [ebp + eax*4 - 0xde0]
cmp dword [eax + 8], 6
jne 0x45f879
mov eax, dword [eax]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x68]
cmp eax, esi
jg 0x45f860
mov edx, dword [ebp - 0x38]
mov dword [ebp + esi*4 - 0xde0], edi
inc esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x68], esi
mov edi, dword [ebp - 0x54]
add edx, 0x10
jmp 0x45d7c7
mov eax, dword [edi]
push dword [eax + 0x18]
jmp 0x45fc67
mov eax, dword [edi + 0xc]
test eax, eax
je 0x45f8b6
push eax
call fcn.0049b8d4
add esp, 4
mov dword [ebp - 4], 3
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x45f8d3
lea eax, [ebp - 0x48]
push eax
lea edx, [ebp - 0x4c]
call fcn.00480470
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov edi, 0x4b70dc
mov esi, dword [ebp - 0x44]
test esi, esi
je 0x45f904
nop word [eax + eax]
push dword [ebp + esi*4 - 0x5e4]
dec esi
call fcn.0049b8d4
add esp, 4
test esi, esi
jne 0x45f8f0
mov esi, dword [ebp - 0x68]
test esi, esi
je 0x45f92a
nop dword [eax + eax]
mov eax, dword [ebp + esi*4 - 0xde4]
dec esi
cmp dword [eax + 8], 6
jne 0x45f926
mov eax, dword [eax]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
test esi, esi
jne 0x45f910
mov eax, edi
lea esp, [ebp - 0xff0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x20
mov dword [ebp - 4], 5
jmp 0x45f8bd
mov dword [ebp - 4], 4
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x45f970
lea eax, [ebp - 0x48]
push eax
lea edx, [ebp - 0x4c]
call fcn.00480470
add esp, 4
mov eax, dword [ebx + 0xc]
xor edi, edi
mov dword [ebp - 4], 0xffffffff
mov dword [eax], edi
jmp case.0x45fac9.3
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x60]
push dword [eax + 4]
push 0
push str.Out_of_memory.
call fcn.0042ff20
mov dword [ebp - 4], 7
jmp 0x45f95a
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x60]
push dword [eax + 4]
push 0
push str.Out_of_memory.
call fcn.0042ff20
mov dword [ebp - 4], 9
jmp 0x45f95a
xor eax, eax
mov dword [ebp - 4], 1
cmp dword [esi], 1
mov edi, 0x4b70dc
mov ecx, dword [ebp - 0x50]
cmovne edi, eax
test ecx, ecx
je 0x45f9e9
lea eax, [ebp - 0x48]
push eax
lea edx, [ebp - 0x4c]
call fcn.00480470
add esp, 4
mov dword [ebp - 4], 0xffffffff
jmp case.0x45fac9.3
mov eax, dword [ebp - 0x60]
mov al, byte [eax]
cmp al, 3
je case.0x45fac9.6
cmp esi, 1
jne 0x45ff19
mov ecx, dword [ebp - 0x6c]
mov esi, dword [ebp - 0xde0]
test ecx, ecx
je 0x45fa2b
push esi
call fcn.0047f2c0
test eax, eax
je 0x45fc76
jmp case.0x45fac9.6
cmp al, 0x11
je 0x45fd6e
cmp al, 0x6b
je 0x45fd6e
cmp al, 0x6c
je 0x45fd6e
mov edx, dword [ebx + 0x10]
test edx, edx
je 0x45fab5
mov eax, dword [esi + 8]
cmp eax, 1
je 0x45fa9e
cmp eax, 2
je 0x45fa9e
cmp eax, 6
je 0x45fa9e
cmp eax, 4
jne 0x45fab5
mov eax, dword [esi]
cmp byte [eax + 0x17], 0
lea ecx, [eax + 0xc]
cmovne ecx, esi
mov eax, dword [ecx]
test byte [eax + 0x15], 2
je 0x45fab5
mov dword [edx + 8], 6
mov eax, dword [esi]
cmp byte [eax + 0x17], 0
lea ecx, [eax + 0xc]
cmovne ecx, esi
mov eax, dword [ecx]
mov ecx, dword [eax]
mov dword [edx], ecx
push ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 0x4b70dc
jmp 0x45f92c
mov dword [edx + 8], eax
mov eax, dword [esi]
mov dword [edx], eax
mov eax, dword [esi + 4]
mov dword [edx + 4], eax
mov eax, 0x4b70dc
jmp 0x45f92c
mov ecx, dword [ebx + 0x14]
mov eax, dword [esi + 8]
mov edi, dword [ecx]
mov dword [ebp - 0x6c], edi
cmp eax, 6
ja case.0x45fac9.3
jmp dword [eax*4 + 0x4601a4]
mov eax, dword [0x4d98d8]
mov edx, dword [esi]
mov ecx, dword [esi + 4]
cmp byte [eax + 0xf5], 0x44
jne 0x45faf4
push 0xa
push edi
push ecx
push edx
call fcn.00499527
add esp, 0x10
mov ecx, eax
jmp 0x45fb3f
mov esi, edi
test ecx, ecx
jg 0x45fb12
jl 0x45fb00
test edx, edx
jae 0x45fb12
neg edx
lea esi, [edi + 2]
mov eax, 0x2d
adc ecx, 0
mov word [edi], ax
neg ecx
mov dword [esi], 0x780030
add esi, 4
push 0x10
push esi
push ecx
push edx
call fcn.00499527
mov eax, dword [0x4d98d8]
add esp, 0x10
cmp byte [eax + 0xf5], 0x48
jne 0x45fb3d
push esi
call dword [sym.imp.USER32.dll_CharUpperW]
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45fb42
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
mov ecx, dword [ebx + 0x14]
add dword [ecx], eax
jmp case.0x45fac9.3
mov eax, dword [0x4d98d8]
sub esp, 8
movsd xmm0, qword [esi]
add eax, 0x74
movsd qword [esp], xmm0
push eax
push pe_nt_image_headers32
push edi
call fcn.0047c9c0
mov ecx, dword [ebx + 0x14]
add eax, eax
add eax, 2
add esp, 0x14
add dword [ecx], eax
jmp case.0x45fac9.3
mov edi, dword [esi]
mov dword [ebp - 0x8c], edi
cmp eax, 4
jne 0x45fbff
push 0
push 1
mov ecx, edi
call fcn.004014c0
mov esi, dword [esi]
mov edi, eax
mov dword [ebp - 0x8c], edi
cmp byte [esi + 0x17], 0
jne 0x45fbbf
mov esi, dword [esi + 0xc]
cmp byte [esi + 0x17], 1
jne 0x45fbde
mov al, byte [esi + 0x15]
test al, 1
jne 0x45fbde
test al, 8
je 0x45fbd7
mov ecx, esi
call fcn.00401330
mov edx, dword [esi + 0xc]
shr edx, 1
jmp 0x45fc13
push 0
push 1
mov ecx, esi
call fcn.004014c0
mov edx, eax
lea eax, [edx + 2]
nop
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x45fbf0
sub edx, eax
jmp 0x45fc11
mov edx, edi
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x45fc04
sub edx, ecx
sar edx, 1
mov eax, dword [ebp - 0x60]
inc edx
mov ecx, dword [ebx + 8]
add ecx, ecx
mov dword [ebp - 0x2c], edx
mov eax, dword [eax + 8]
movzx eax, word [eax + ecx*8 + 2]
mov ecx, 0xff
cmp ax, cx
jb 0x45fc33
mov ecx, eax
mov eax, dword [ebx + 0x24]
inc eax
add eax, ecx
cmp edx, eax
jbe 0x45fd44
mov esi, edx
sub esi, eax
mov eax, dword [ebx + 0x1c]
add esi, dword [eax]
mov dword [ebp - 0x94], esi
lea eax, [esi + esi]
push eax
call fcn.004997ae
mov edi, eax
add esp, 4
test edi, edi
jne 0x45fc82
push 0x4b70dc
mov ecx, dword [ebp - 0x60]
push 0
push str.Out_of_memory.
call fcn.0042ff20
mov eax, dword [ebx + 0xc]
xor edi, edi
mov dword [eax], edi
jmp case.0x45fac9.3
cmp esi, 0x400000
jbe 0x45fc90
inc dword [0x4dcf20]
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax]
mov eax, dword [ebx + 0x14]
mov esi, dword [eax]
sub esi, ecx
sar esi, 1
je 0x45fcb1
lea eax, [esi + esi]
push eax
push ecx
push edi
call fcn.00498e20
mov eax, dword [ebx + 0x14]
add esp, 0xc
lea edx, [edi + esi*2]
mov dword [eax], edx
mov eax, dword [ebp - 0x2c]
add eax, eax
mov dword [ebp - 0x6c], edx
push eax
push dword [ebp - 0x8c]
push edx
call fcn.00498e20
mov esi, dword [ebx + 0x18]
add esp, 0xc
push dword [esi]
call fcn.0049b8d4
mov eax, dword [ebx + 0x1c]
add esp, 4
mov eax, dword [eax]
cmp eax, 0x400000
jbe 0x45fced
dec dword [0x4dcf20]
mov edx, dword [esi]
xor ecx, ecx
lea eax, [edx + eax*2]
mov dword [ebp - 0x1c], eax
cmp dword [ebx + 8], ecx
jle 0x45fd1f
mov esi, dword [ebx + 0x20]
nop
mov eax, dword [esi + ecx*4]
cmp eax, edx
jb 0x45fd16
cmp eax, dword [ebp - 0x1c]
jae 0x45fd16
sub eax, edx
sar eax, 1
lea eax, [edi + eax*2]
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, dword [ebx + 8]
jl 0x45fd00
mov esi, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x2c]
mov dword [esi], edi
mov edi, dword [ebp - 0x6c]
mov dword [ecx], eax
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x14]
mov esi, dword [eax]
lea eax, [esi + edx*2]
mov dword [ecx], eax
jmp case.0x45fac9.3
mov eax, dword [ebx + 0x14]
mov esi, dword [eax]
cmp esi, edi
je 0x45fd5e
lea eax, [edx + edx]
push eax
push edi
push esi
call fcn.00498760
mov edx, dword [ebp - 0x2c]
add esp, 0xc
mov ecx, dword [ebx + 0x14]
lea eax, [esi + edx*2]
mov edi, dword [ebp - 0x6c]
mov dword [ecx], eax
jmp case.0x45fac9.3
mov eax, dword [esi + 8]
cmp eax, 6
ja case.0x45fd7a.3
jmp dword [eax*4 + 0x4601c0]
mov eax, dword [esi]
or eax, dword [esi + 4]
je 0x45fda1
mov eax, 1
mov edi, 0x4ca34c
test eax, eax
mov ecx, 0x4b70dc
cmove edi, ecx
jmp case.0x45fac9.3
xor eax, eax
mov edi, 0x4ca34c
test eax, eax
mov ecx, 0x4b70dc
cmove edi, ecx
jmp case.0x45fac9.3
movsd xmm0, qword [esi]
ucomisd xmm0, qword [ebp - 0x88]
lahf
test ah, 0x44
jnp 0x45fda1
mov eax, 1
mov edi, 0x4ca34c
test eax, eax
mov ecx, 0x4b70dc
cmove edi, ecx
jmp case.0x45fac9.3
mov ecx, dword [esi + 4]
test ecx, ecx
je case.0x45fd7a.0
mov eax, dword [ecx]
or eax, dword [ecx + 4]
je 0x45fda1
mov eax, 1
mov edi, 0x4ca34c
test eax, eax
mov ecx, 0x4b70dc
cmove edi, ecx
jmp case.0x45fac9.3
mov esi, dword [esi]
movzx eax, word [esi]
cmp eax, 0x30
jbe 0x45fe2c
mov eax, 1
mov edi, 0x4ca34c
test eax, eax
mov ecx, 0x4b70dc
cmove edi, ecx
jmp case.0x45fac9.3
test ax, ax
je 0x45fda1
cmp eax, 0x30
jne 0x45fe45
cmp word [esi + 2], 0
je 0x45fda1
push 0
push 1
push 0
mov edx, 1
mov ecx, esi
call fcn.0047c7e0
add esp, 0xc
sub eax, 1
je 0x45febf
sub eax, 1
je 0x45fe7d
mov eax, 1
mov edi, 0x4ca34c
test eax, eax
mov ecx, 0x4b70dc
cmove edi, ecx
jmp case.0x45fac9.3
push esi
call fcn.004a10ef
fstp qword [ebp - 0xb8]
movsd xmm0, qword [ebp - 0xb8]
add esp, 4
ucomisd xmm0, qword [ebp - 0x88]
lahf
test ah, 0x44
jnp 0x45fda1
mov eax, 1
mov edi, 0x4ca34c
test eax, eax
mov ecx, 0x4b70dc
cmove edi, ecx
jmp case.0x45fac9.3
mov ecx, esi
call fcn.004151f0
or eax, edx
je 0x45fda1
mov eax, 1
mov edi, 0x4ca34c
test eax, eax
mov ecx, 0x4b70dc
cmove edi, ecx
jmp case.0x45fac9.3
mov ecx, dword [esi]
call fcn.00454450
test eax, eax
mov edi, 0x4ca34c
mov ecx, 0x4b70dc
cmove edi, ecx
jmp case.0x45fac9.3
mov eax, dword [ebp - 0x1c]
mov edi, 0x4ca34c
test eax, eax
mov ecx, 0x4b70dc
cmove edi, ecx
jmp case.0x45fac9.3
mov eax, dword [ebp - 0x6c]
test eax, eax
je case.0x45fac9.6
push 1
push 0
push 0xffffffffffffffff
mov edi, 0x4b70dc
mov ecx, eax
push edi
call fcn.0047faa0
test eax, eax
jne case.0x45fac9.3
mov eax, dword [ebx + 0xc]
mov dword [eax], 0
jmp case.0x45fac9.3