Function at 0x427b90
Capabilities:
Check for software breakpoints

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
mov esi, ecx
push ebx
sub esp, 0x18c
mov eax, dword [edi + 4]
mov edx, dword [edi]
mov dword [ebp - 0x148], eax
mov eax, dword [ecx + 0x110]
mov dword [ebp - 0x168], edx
mov dword [ebp - 0x184], eax
cmp eax, 0x63
jg 0x4295ae
add eax, 1
mov edi, dword [ecx + 0x14]
mov dword [ecx + 0x110], eax
movzx eax, byte [ecx + 0xdd]
mov dword [ebp - 0x138], edi
mov byte [ebp - 0x142], al
mov byte [ecx + 0xdd], 1
cmp edi, 0x26
je 0x42921d
cmp edi, 0x7c
je 0x42921d
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x164], 0
mov byte [ebp - 0x158], 0
mov byte [ebp - 0x141], 0
mov edx, edi
mov byte [ebp - 0x138], 0
lea esi, [esi]
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0
mov byte [ebp - 0x140], 0
cmp edi, 0xe3
je 0x428718
cmp edi, 0xb2
jg 0x428190
cmp edi, 0xa9
jg 0x428968
cmp edi, 0x86
jg 0x428b72
cmp edi, 0x25
jle case.0x42858b.238
lea eax, [edi - 0x26]
cmp eax, 0x60
ja case.0x42858b.238
jmp dword [eax*4 + 0x585180]
cmp ecx, 0xb
je case.0x42858b.239
movd xmm0, dword [esi + 0xc]
mov ecx, dword [esi + 0x60]
lea edi, [ebp - 0x78]
punpckldq xmm0, xmm0
movq qword [ebp - 0x78], xmm0
mov eax, dword [ecx]
mov dword [esp + 4], edi
mov dword [esp], 0xe2
call dword [eax + 8]
sub esp, 8
mov edi, dword [esi + 0x14]
lea esi, [esi]
cmp byte [ebp - 0x141], 0
jne 0x427cf0
mov eax, dword [ebp - 0x148]
cmp byte [eax + 0x18], 0
je 0x427cf0
cmp edi, 0x3f
je 0x428ce0
nop
cmp edi, 0x5b
jne 0x427dd8
movzx edi, byte [ebp - 0x138]
lea ebx, [esi + 0xc]
jmp 0x427d4e
lea eax, [ebp - 0x78]
mov dword [ebp - 0x64], 0
mov ecx, esi
mov dword [ebp - 0x60], 0x1010001
mov dword [ebp - 0x5c], 0x10101
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x168]
mov dword [esp], eax
call fcn.00427b90
sub esp, 8
cmp dword [esi + 0x14], 0x5d
jne 0x429360
mov ecx, ebx
call fcn.00451070
cmp dword [esi + 0x14], 0x5b
jne 0x427d78
cmp byte [esi + 0x18], 0
jne 0x427d78
mov ecx, ebx
call fcn.00451070
cmp dword [esi + 0x14], 0x5d
jne 0x427d08
mov ecx, ebx
mov edi, 1
call fcn.00451070
cmp dword [esi + 0x14], 0x5b
je 0x427d4e
lea esi, cs:[esi]
mov eax, edi
mov byte [ebp - 0x138], al
jmp 0x427dd8
lea ecx, [edi - 0xd9]
mov eax, 1
shl eax, cl
test eax, 0xeff8
jne case.0x42858b.241
test eax, 0x90006
jne case.0x42858b.243
test al, 1
je case.0x42858b.238
lea ecx, [esi + 0xc]
call fcn.00451070
mov edi, dword [esi + 0x14]
jmp 0x427cd0
cmp byte [ebp - 0x158], 0
jne 0x428fdb
cmp byte [ebp - 0x141], 0
jne 0x427e2b
lea esi, cs:[esi]
cmp byte [ebp - 0x140], 0
je 0x427e28
movzx eax, byte [ebp - 0x138]
or al, byte [ebp - 0x141]
jne 0x427e28
mov ecx, dword [esi + 0x60]
movq xmm6, qword [ebp - 0x160]
lea edi, [ebp - 0x78]
mov eax, dword [ecx]
movq qword [ebp - 0x78], xmm6
mov dword [esp + 4], edi
mov dword [esp], 0x165
call dword [eax + 8]
mov byte [ebp - 0x141], 0
mov byte [ebp - 0x138], 0
sub esp, 8
lea esi, [esi]
mov edi, dword [esi + 0x14]
cmp edi, 0x7c
je 0x427e39
cmp edi, 0x26
jne 0x428d50
mov eax, dword [esi + 0xc]
lea ebx, [esi + 0xc]
mov ecx, ebx
mov dword [ebp - 0x164], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x170], eax
call fcn.00451070
mov byte [ebp - 0x158], 1
mov edi, dword [esi + 0x14]
mov edx, edi
jmp 0x427c38
lea ebx, [esi + 0xc]
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x158], edx
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 0x1c]
movd xmm7, ecx
mov dword [ebp - 0x170], eax
movd xmm0, edx
sub eax, edx
mov dword [ebp - 0x17c], ecx
mov ecx, ebx
punpckldq xmm0, xmm7
movd xmm7, edi
mov dword [ebp - 0x178], edx
movq qword [ebp - 0xc0], xmm0
movd xmm0, eax
punpckldq xmm0, xmm7
mov dword [ebp - 0x164], edi
movq qword [ebp - 0xb8], xmm0
call fcn.00451070
mov edi, dword [esi + 0x14]
mov edx, dword [ebp - 0x158]
cmp edi, 0xd2
je 0x428a72
cmp edi, 0x2e
jne 0x428b4e
lea esi, [esi]
mov ecx, ebx
call fcn.00451070
mov eax, dword [esi + 0x14]
cmp eax, 0x81
je 0x427f0f
sub eax, 0xa9
cmp eax, 0x51
ja 0x4294c6
mov ecx, ebx
call fcn.00451070
cmp dword [esi + 0x14], 0x2e
je 0x427ef0
mov ecx, dword [ebp - 0x168]
movdqu xmm4, xmmword [ebp - 0xc0]
mov ebx, 1
mov eax, dword [ecx]
movups xmmword [esp], xmm4
call dword [eax + 0xa4]
sub esp, 0x10
mov edi, dword [esi + 0x14]
cmp edi, 0x98
je 0x428a33
cmp edi, 0x3c
je 0x428a33
mov edx, dword [ebp - 0x148]
cmp byte [edx + 0x14], 0
je 0x427cd0
cmp edi, 0x5b
je 0x427cd0
test bl, bl
jne 0x427cd0
mov eax, dword [edx + 4]
mov ebx, dword [ebp - 0x164]
cmp dword [edx + 0xc], ebx
jne 0x427cd0
test ebx, ebx
je 0x427fab
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x17c]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x427cd0
mov eax, dword [ebp - 0x148]
movd xmm0, dword [ebp - 0x178]
movd xmm4, dword [ebp - 0x170]
mov ecx, dword [esi + 0x60]
mov edx, dword [eax]
mov edi, dword [eax + 8]
punpckldq xmm0, xmm4
movzx ebx, byte [eax + 0x10]
add edi, edx
movd xmm1, edx
movd xmm3, edi
lea edi, [ebp - 0x78]
mov byte [ebp - 0x68], bl
punpckldq xmm1, xmm3
punpcklqdq xmm0, xmm1
movups xmmword [ebp - 0x78], xmm0
mov eax, dword [ecx]
mov dword [esp + 4], edi
mov dword [esp], 0x14
call dword [eax + 8]
mov edi, dword [esi + 0x14]
sub esp, 8
jmp 0x427cd0
lea ecx, [esi + 0xc]
call fcn.00451070
mov eax, dword [ebp - 0x168]
mov ecx, esi
mov dword [esp], eax
call fcn.0042c4f0
mov edi, dword [esi + 0x14]
sub esp, 4
jmp 0x427cd0
mov eax, dword [ebp - 0x168]
mov ecx, esi
mov dword [esp], eax
call fcn.0042c790
mov edi, dword [esi + 0x14]
sub esp, 4
jmp 0x427cd0
mov eax, dword [ebp - 0x168]
mov ecx, esi
mov dword [esp], eax
call fcn.0042cd90
mov byte [ebp - 0x141], 1
mov edi, dword [esi + 0x14]
sub esp, 4
jmp 0x427cf0
mov ecx, dword [esi + 0x60]
movq xmm2, qword [esi + 0xc]
lea edi, [ebp - 0x78]
lea ebx, [esi + 0xc]
mov eax, dword [ecx]
movq qword [ebp - 0x78], xmm2
mov dword [esp + 4], edi
mov dword [esp], 8
call dword [eax + 8]
mov ecx, ebx
sub esp, 8
call fcn.00451070
jmp 0x427e5c
mov eax, dword [ebp - 0x148]
lea edi, [ebp - 0x78]
mov byte [ebp - 0x5a], 1
mov ecx, esi
mov dword [ebp - 0x60], 0x1010001
mov edx, dword [eax + 0x14]
movdqu xmm3, xmmword [eax]
mov eax, dword [eax + 0x10]
movups xmmword [ebp - 0x158], xmm3
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x154], edx
mov edx, 0x101
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x68], eax
mov word [ebp - 0x5c], dx
movups xmmword [ebp - 0x78], xmm3
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x168]
mov dword [esp], eax
call fcn.00481860
mov edi, dword [esi + 0x14]
sub esp, 8
jmp 0x427cd0
mov eax, dword [ebp - 0x148]
mov ecx, 0x101
lea edi, [ebp - 0x78]
mov dword [ebp - 0x60], 0x1010001
mov word [ebp - 0x5c], cx
mov ecx, esi
movdqu xmm3, xmmword [eax]
mov edx, dword [eax + 0x14]
mov byte [ebp - 0x5a], 1
mov eax, dword [eax + 0x10]
movups xmmword [ebp - 0x158], xmm3
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], edx
mov dword [ebp - 0x64], edx
movups xmmword [ebp - 0x78], xmm3
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x168]
mov dword [esp], eax
call fcn.00477290
mov edi, dword [esi + 0x14]
sub esp, 8
jmp 0x427cd0
lea ebx, [esi + 0xc]
mov ecx, ebx
call fcn.00451070
cmp dword [esi + 0x14], 0x83
jne 0x429590
mov ecx, ebx
call fcn.00451070
mov edi, dword [esi + 0x14]
jmp 0x427cd0
cmp edi, 0xd8
jg 0x428570
cmp edi, 0xcd
jle 0x428804
sub edi, 0xce
cmp edi, 0xa
ja case.0x42858b.238
jmp dword [edi*4 + 0x585304]
lea ebx, [esi + 0xc]
lea edi, [ebp - 0x78]
mov dword [esp], ebx
mov ecx, edi
call fcn.0044dcf0
mov ecx, ebx
sub esp, 4
call fcn.00451070
mov eax, dword [esi + 0x14]
mov ecx, ebx
mov dword [esp], edi
cmp eax, 0x2e
je 0x428704
cmp eax, 0xd2
je 0x428704
call fcn.0044dd70
mov edi, dword [esi + 0x14]
sub esp, 4
jmp 0x427cd0
lea ebx, [esi + 0xc]
lea edi, [ebp - 0x78]
mov dword [esp], ebx
mov ecx, edi
call fcn.0044dcf0
mov ecx, ebx
sub esp, 4
call fcn.00451070
mov eax, dword [ebp - 0x148]
cmp byte [eax + 0x19], 0
je 0x428237
cmp dword [esi + 0x14], 0xd2
je 0x428a29
mov dword [esp], edi
mov ecx, ebx
call fcn.0044dd70
mov eax, dword [ebp - 0x148]
mov ecx, esi
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x168]
mov dword [esp], eax
call fcn.00427b90
mov edi, dword [esi + 0x14]
sub esp, 8
jmp 0x427cd0
lea ebx, [esi + 0xc]
lea edi, [ebp - 0xc0]
mov dword [esp], ebx
mov ecx, edi
call fcn.0044dcf0
mov eax, dword [esi + 0xc]
movq xmm5, qword [esi + 0xc]
mov ecx, ebx
sub esp, 4
mov dword [ebp - 0x178], eax
movq qword [ebp - 0x170], xmm5
call fcn.00451070
mov eax, dword [esi + 0x14]
cmp eax, 0xd6
jg 0x4292df
cmp eax, 0xb7
jle 0x429337
lea ecx, [eax - 0xb8]
mov edx, 1
shl edx, cl
and edx, 0x6a434009
jne 0x4282e5
cmp eax, 0xd2
jne 0x4292f7
mov eax, dword [ebp - 0x148]
cmp byte [eax + 0x19], 0
jne 0x428a29
mov dword [esp], edi
mov ecx, ebx
call fcn.0044dd70
mov eax, dword [esi + 0x10]
mov ecx, ebx
sub esp, 4
mov dword [ebp - 0x164], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x158], eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x17c], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x180], eax
call fcn.00451070
mov edi, dword [esi + 0xe0]
test edi, edi
je 0x429264
mov eax, dword [edi + 8]
test eax, eax
je 0x42924e
mov edx, dword [eax + 8]
mov dword [ebp - 0x170], edx
cmp edx, 0x91
je 0x42924e
imul edi, dword [ebp - 0x170], 0x1c
mov ecx, dword [ebp - 0x158]
movd xmm0, dword [ebp - 0x158]
movd xmm4, dword [ebp - 0x180]
mov edx, dword [ebp - 0x164]
movd xmm3, dword [ebp - 0x17c]
lea edi, [eax + edi + 0xc]
punpckldq xmm0, xmm4
sub edx, ecx
movq qword [edi + 4], xmm0
mov ecx, dword [ebp - 0x170]
movd xmm0, edx
mov edx, 0xd
mov byte [edi], 0x2e
punpckldq xmm0, xmm3
mov word [edi + 0x14], dx
add ecx, 1
movq qword [edi + 0xc], xmm0
mov edi, dword [esi + 0x14]
mov dword [eax + 8], ecx
cmp edi, 0x5b
je 0x429296
cmp edi, 0xc2
jne 0x427cd0
lea eax, [esi + 0x80]
lea edi, [ebp - 0x78]
mov dword [ebp - 0x158], eax
mov ecx, edi
mov dword [esp], ebx
call fcn.0044dcf0
mov eax, dword [esi + 0x80]
mov dword [ebp - 0x30], 0x584df4
sub esp, 4
mov eax, dword [eax + 8]
cmp eax, 0x460280
jne 0x4293d0
mov eax, dword [esi + 0x88]
sub eax, 1
or eax, 3
mov dword [ebp - 0x164], eax
add eax, 1
mov ecx, eax
sub ecx, dword [esi + 0x88]
lea edx, [ecx + 0x10]
mov ecx, dword [esi + 0x8c]
sub ecx, dword [esi + 0x88]
cmp ecx, edx
jb 0x42953e
mov ecx, dword [ebp - 0x164]
add ecx, 0x11
mov dword [esi + 0x88], ecx
mov edx, dword [ebp - 0x158]
mov dword [eax + 4], 0
movd xmm0, eax
mov dword [eax + 8], 0
movd xmm2, dword [esi + 0x60]
mov dword [eax], edx
mov dword [eax + 0xc], edx
lea eax, [ebp - 0x30]
punpckldq xmm0, xmm2
mov dword [esi + 0x60], eax
lea eax, [esi + 0xb0]
mov dword [ebp - 0x164], eax
movq qword [ebp - 0x2c], xmm0
movzx eax, byte [0x5ec120]
test al, al
je 0x42937e
mov eax, dword [esi + 0xb4]
test eax, eax
je 0x429318
mov ecx, dword [eax + 8]
mov edx, eax
mov dword [ebp - 0x158], ecx
cmp ecx, 0xff
je 0x429318
mov ecx, dword [ebp - 0x158]
shl ecx, 4
lea ecx, [eax + ecx + 0xc]
mov dword [ecx], 0x583dc0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0x55d020
mov ecx, dword [ebp - 0x158]
add ecx, 1
mov dword [eax + 8], ecx
mov eax, dword [edx + 8]
mov ecx, ebx
sub eax, 1
shl eax, 4
lea eax, [edx + eax + 0xc]
mov dword [ebp - 0x158], eax
call fcn.00451070
mov ecx, 0x101
lea eax, [ebp - 0xe0]
mov byte [ebp - 0xcc], 0
mov word [ebp - 0xc4], cx
mov ecx, esi
mov dword [ebp - 0xc8], 0x1010000
mov byte [ebp - 0xc2], 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x158]
mov dword [esp], eax
call fcn.004774d0
sub esp, 8
cmp dword [esi + 0x14], 0x3f
jne 0x429174
mov eax, dword [ebp - 0x148]
cmp byte [eax + 0x1e], 0
je 0x429174
mov eax, dword [ebp - 0x28]
mov ecx, ebx
mov dword [esi + 0x60], eax
mov dword [esp], edi
call fcn.0044dde0
sub esp, 4
jmp 0x429198
cmp edi, 0xec
jle 0x427d82
sub edi, 0xed
cmp edi, 0xd
ja case.0x42858b.238
jmp dword [edi*4 + 0x585330]
lea ebx, [esi + 0xc]
lea edi, [ebp - 0x78]
mov dword [esp], ebx
mov ecx, edi
call fcn.0044dcf0
mov ecx, ebx
sub esp, 4
call fcn.00451070
mov eax, dword [ebp - 0x148]
cmp byte [eax + 0x19], 0
je 0x4285c5
cmp dword [esi + 0x14], 0xd2
je 0x428a29
mov dword [esp], edi
mov ecx, ebx
call fcn.0044dd70
sub esp, 4
cmp dword [esi + 0x14], 0xec
je 0x42817f
mov dword [esp + 8], 0x585104
mov ecx, esi
mov dword [esp + 4], 0x20e
mov dword [esp], 0x585138
call fcn.004258f0
lea esi, [esi]
lea ebx, [esi + 0xc]
mov ecx, ebx
call fcn.00451070
mov eax, dword [esi + 0x14]
sub eax, 0x81
cmp eax, 0x79
ja case.0x42861b.130
jmp dword [eax*4 + 0x585368]
sub eax, 0xa9
cmp eax, 0x51
ja 0x42865f
mov ecx, ebx
call fcn.00451070
mov edi, dword [esi + 0x14]
cmp edi, 0x2e
jne 0x428bdb
mov ecx, ebx
call fcn.00451070
mov eax, dword [esi + 0x14]
cmp eax, 0x84
je case.0x42861b.237
jg 0x428628
cmp eax, 0x81
je case.0x42861b.237
mov dword [esp + 8], 0x585104
mov ecx, esi
mov dword [esp + 4], 0x2d7
mov dword [esp], 0x585138
call fcn.004258f0
lea esi, [esi]
mov ecx, dword [esi + 0xc]
movd xmm5, dword [esi + 0x20]
mov edi, dword [esi + 0x10]
movd xmm6, dword [esi + 0x1c]
movd xmm0, ecx
mov edx, dword [ebp - 0x168]
punpckldq xmm0, xmm5
sub edi, ecx
movq qword [ebp - 0xf0], xmm0
movd xmm0, edi
mov eax, dword [edx]
mov ecx, edx
punpckldq xmm0, xmm6
movq qword [ebp - 0xe8], xmm0
movdqu xmm7, xmmword [ebp - 0xf0]
mov eax, dword [eax + 0xb4]
movups xmmword [esp], xmm7
call eax
sub esp, 0x10
jmp case.0x42861b.237
lea ebx, [esi + 0xc]
lea edi, [ebp - 0x78]
mov dword [esp], ebx
mov ecx, edi
call fcn.0044dcf0
mov ecx, ebx
sub esp, 4
call fcn.00451070
cmp dword [esi + 0x14], 0xd2
mov ecx, ebx
mov dword [esp], edi
jne 0x4281f4
call fcn.0044dde0
mov edx, dword [esi + 0x14]
sub esp, 4
jmp 0x427e73
movdqu xmm6, xmmword [esi + 0xc]
movdqu xmm7, xmmword [esi + 0x18]
lea ecx, [ebp - 0x48]
lea ebx, [esi + 0xc]
mov eax, dword [esi + 0x5c]
mov byte [ebp - 0x38], 1
lea edi, [ebp - 0x78]
movups xmmword [ebp - 0xc0], xmm6
movq xmm6, qword [esi + 0x54]
mov dword [ebp - 0x70], eax
lea eax, [esi + 0x50]
movups xmmword [ebp - 0xb4], xmm7
movdqu xmm7, xmmword [ebp - 0xc0]
movq qword [ebp - 0x78], xmm6
movdqu xmm6, xmmword [esi + 0x18]
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 0x30]
mov dword [esi + 0x30], ecx
mov ecx, ebx
movups xmmword [ebp - 0x6c], xmm7
movq xmm7, qword [esi + 0x28]
movups xmmword [ebp - 0x60], xmm6
movq xmm6, qword [esi + 0xc]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x48], 0x584e08
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
movq qword [ebp - 0x50], xmm7
movq qword [ebp - 0x160], xmm6
call fcn.00451070
mov eax, dword [ebp - 0x148]
cmp byte [eax + 0x19], 0
je 0x4287bd
cmp dword [esi + 0x14], 0xd2
je 0x428f4f
mov eax, dword [esi + 0x30]
mov edi, dword [ebp - 0x34]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x4287f0
lea esi, [esi]
lea edx, [ebx + 8]
mov eax, dword [edi]
mov ecx, edi
mov dword [esp + 4], edx
mov edx, dword [ebx + 4]
mov dword [esp], edx
call dword [eax + 8]
mov ebx, dword [ebx]
sub esp, 8
test ebx, ebx
jne 0x4287d0
mov edi, dword [ebp - 0x34]
mov dword [esi + 0x30], edi
mov edi, dword [esi + 0x14]
mov byte [ebp - 0x140], 1
mov edx, edi
jmp 0x427c5f
lea ecx, [edi - 0xb8]
cmp ecx, 0x14
ja case.0x42858b.238
mov eax, 1
shl eax, cl
test eax, 0xb4009
jne case.0x42858b.241
cmp ecx, 0x14
jne 0x427c97
mov eax, dword [ebp - 0x168]
mov ecx, esi
mov dword [esp], eax
call fcn.0042cca0
mov edi, dword [esi + 0x14]
sub esp, 4
cmp edi, 0x2e
jne 0x42887e
lea ebx, [esi + 0xc]
lea esi, [esi]
mov ecx, ebx
call fcn.00451070
mov eax, dword [esi + 0x14]
cmp eax, 0x81
je 0x42886f
sub eax, 0xa9
cmp eax, 0x51
ja 0x429520
mov ecx, ebx
call fcn.00451070
mov edi, dword [esi + 0x14]
cmp edi, 0x2e
je 0x428850
cmp byte [esi + 0x18], 0
jne 0x427cd0
cmp edi, 0x3c
je 0x428899
cmp edi, 0x98
jne 0x427cd0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x168]
mov ecx, esi
mov dword [esp], eax
call fcn.0042d620
mov edi, dword [esi + 0x14]
sub esp, 8
cmp edi, 0x2e
jne 0x427cd0
lea ebx, [esi + 0xc]
jmp 0x428912
mov ecx, dword [esi + 0x60]
movd xmm2, dword [esi + 0x10]
movd xmm3, edi
lea edx, [ebp - 0x78]
movd xmm1, dword [esi + 0xc]
punpckldq xmm0, xmm3
mov eax, dword [ecx]
punpckldq xmm1, xmm2
punpcklqdq xmm0, xmm1
movups xmmword [ebp - 0x78], xmm0
mov dword [esp + 4], edx
mov dword [esp], 0x5c
call dword [eax + 8]
mov ecx, ebx
sub esp, 8
call fcn.00451070
mov edi, dword [esi + 0x14]
cmp edi, 0x2e
jne 0x427cd0
movd xmm0, dword [esi + 0xc]
mov ecx, ebx
mov edi, dword [esi + 0x10]
movd dword [ebp - 0x158], xmm0
call fcn.00451070
mov eax, dword [esi + 0x14]
movd xmm0, dword [ebp - 0x158]
cmp eax, 0x81
je 0x4288c8
sub eax, 0xa9
cmp eax, 0x51
jbe 0x4288c8
mov dword [esp + 8], 0x58501e
mov ecx, esi
mov dword [esp + 4], 0x67
mov dword [esp], 0x585138
call fcn.004258f0
lea esi, cs:[esi]
lea ecx, [edi - 0xaa]
mov eax, 1
shl eax, cl
test al, 0x6d
jne case.0x42858b.241
test eax, 0x182
jne case.0x42858b.243
lea ebx, [esi + 0xc]
lea edi, [ebp - 0x78]
mov dword [esp], ebx
mov ecx, edi
call fcn.0044dcf0
movq xmm5, qword [esi + 0xc]
mov ecx, ebx
sub esp, 4
movq qword [ebp - 0x178], xmm5
call fcn.00451070
cmp byte [esi + 0x18], 0
je 0x4289ed
mov eax, dword [ebp - 0x148]
cmp byte [eax + 0x1c], 0
jne 0x428a29
mov ecx, dword [esi + 0x60]
movq xmm5, qword [ebp - 0x178]
lea edx, [ebp - 0xc0]
mov eax, dword [ecx]
movq qword [ebp - 0xc0], xmm5
mov dword [esp + 4], edx
mov dword [esp], 0xea
call dword [eax + 8]
sub esp, 8
mov eax, dword [esi + 0x14]
cmp eax, 0xd7
jg 0x429026
cmp eax, 0xba
jg 0x4290e3
cmp eax, 0x81
je 0x429042
sub eax, 0xa9
cmp eax, 0xf
ja 0x428a29
mov ecx, 0x837f
bt ecx, eax
jb 0x429042
mov dword [esp], edi
mov ecx, ebx
jmp 0x428704
mov edx, dword [ebp - 0x148]
movzx eax, byte [esi + 0x18]
cmp byte [edx + 0x1a], 0
je 0x428d13
test al, al
jne 0x427f56
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x168]
mov ecx, esi
mov dword [esp], eax
call fcn.0042d620
mov edi, dword [esi + 0x14]
sub esp, 8
jmp 0x427f56
cmp byte [esi + 0x18], 0
je 0x4293af
mov eax, dword [ebp - 0x148]
cmp byte [eax + 0x1d], 0
jne 0x427cd0
mov dword [ebp - 0x138], edx
mov edx, dword [esi + 0x60]
lea ecx, [ebp - 0x78]
movq xmm6, qword [esi + 0xc]
mov eax, dword [edx]
movq qword [ebp - 0x78], xmm6
mov dword [esp + 4], ecx
mov ecx, edx
mov dword [esp], 0xf4
call dword [eax + 8]
sub esp, 8
movq xmm2, qword [esi + 0xc]
mov ecx, ebx
movq qword [ebp - 0x140], xmm2
call fcn.00451070
cmp dword [ebp - 0x138], 0xed
je 0x428b04
mov edx, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x168]
cmp byte [edx + 0x19], 0
mov eax, dword [ecx]
je 0x429410
movdqu xmm4, xmmword [ebp - 0xc0]
movups xmmword [esp], xmm4
call dword [eax + 0xa8]
sub esp, 0x10
mov eax, dword [ebp - 0x148]
cmp byte [eax + 0x19], 0
je 0x42949b
mov eax, dword [ebp - 0x168]
mov ecx, esi
mov dword [esp], eax
call fcn.0042bf00
sub esp, 4
movzx eax, byte [ebp - 0x142]
mov byte [esi + 0xdd], al
mov eax, dword [ebp - 0x184]
mov dword [esi + 0x110], eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 8
mov ecx, dword [ebp - 0x168]
movdqu xmm2, xmmword [ebp - 0xc0]
xor ebx, ebx
mov eax, dword [ecx]
movups xmmword [esp], xmm2
call dword [eax + 0xac]
sub esp, 0x10
jmp 0x427f3e
cmp edi, 0xa9
jne case.0x42858b.238
lea ebx, [esi + 0xc]
lea edi, [ebp - 0x78]
mov dword [esp], ebx
mov ecx, edi
call fcn.0044dcf0
mov ecx, ebx
sub esp, 4
call fcn.00451070
mov eax, dword [esi + 0x14]
cmp eax, 0x28
je 0x428f78
cmp eax, 0xd8
jne 0x428a29
mov dword [esp], edi
mov ecx, ebx
call fcn.0044dd70
mov ecx, ebx
sub esp, 4
call fcn.00451070
mov eax, dword [ebp - 0x168]
mov ecx, esi
mov dword [esp], eax
call fcn.0042c4f0
sub esp, 4
jmp 0x427cc7
cmp byte [esi + 0x18], 0
jne 0x427cd0
cmp edi, 0x3c
je 0x428c29
cmp edi, 0x98
jne 0x427cd0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x60]
lea edi, [ebp - 0x78]
mov dword [ebp - 0x70], 9
add eax, 1
movd xmm0, eax
punpckldq xmm0, xmm0
movq qword [ebp - 0x78], xmm0
mov eax, dword [ecx]
mov dword [esp + 4], edi
mov dword [esp], 0x146
call dword [eax + 8]
sub esp, 8
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x168]
mov ecx, esi
mov dword [esp], eax
call fcn.0042d620
mov edi, dword [esi + 0x14]
sub esp, 8
cmp edi, 0x2e
je 0x428ca2
jmp 0x427cd0
mov ecx, dword [esi + 0x60]
movd xmm4, dword [esi + 0x10]
movd xmm5, edi
lea edx, [ebp - 0x78]
movd xmm1, dword [esi + 0xc]
punpckldq xmm0, xmm5
mov eax, dword [ecx]
punpckldq xmm1, xmm4
punpcklqdq xmm0, xmm1
movups xmmword [ebp - 0x78], xmm0
mov dword [esp + 4], edx
mov dword [esp], 0x5c
call dword [eax + 8]
mov ecx, ebx
sub esp, 8
call fcn.00451070
mov edi, dword [esi + 0x14]
cmp edi, 0x2e
jne 0x427cd0
movd xmm0, dword [esi + 0xc]
mov ecx, ebx
mov edi, dword [esi + 0x10]
movd dword [ebp - 0x158], xmm0
call fcn.00451070
mov eax, dword [esi + 0x14]
movd xmm0, dword [ebp - 0x158]
cmp eax, 0x81
je 0x428c58
sub eax, 0xa9
cmp eax, 0x51
jbe 0x428c58
jmp 0x428945
mov ecx, dword [esi + 0x60]
movq xmm5, qword [esi + 0xc]
lea edi, [ebp - 0x78]
mov eax, dword [ecx]
movq qword [ebp - 0x78], xmm5
mov dword [esp + 4], edi
mov dword [esp], 8
call dword [eax + 8]
lea ecx, [esi + 0xc]
sub esp, 8
call fcn.00451070
mov edi, dword [esi + 0x14]
jmp 0x427cf0
test al, al
je 0x428a4f
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x60]
lea edi, [ebp - 0x78]
lea eax, [edx + 1]
movd xmm0, edx
movd xmm2, eax
mov eax, dword [ecx]
punpckldq xmm0, xmm2
movq qword [ebp - 0x78], xmm0
mov dword [esp + 4], edi
mov dword [esp], 0xf2
call dword [eax + 8]
sub esp, 8
jmp 0x428a4f
mov eax, dword [ebp - 0x148]
cmp byte [eax + 0x1e], 0
je 0x428b27
cmp edi, 0xc2
jne 0x428b27
cmp byte [esi + 0x18], 0
lea ebx, [ebp - 0x78]
je 0x428da2
cmp byte [eax + 0x1b], 0
jne 0x428b27
mov ecx, dword [esi + 0x60]
movq xmm2, qword [esi + 0xc]
lea ebx, [ebp - 0x78]
mov eax, dword [ecx]
movq qword [ebp - 0x78], xmm2
mov dword [esp + 4], ebx
mov dword [esp], 0xf1
call dword [eax + 8]
sub esp, 8
lea edi, [esi + 0xc]
mov ecx, edi
call fcn.00451070
lea edx, [esi + 0xb0]
lea eax, [ebp - 0x120]
mov dword [esp], edx
mov ecx, eax
call fcn.00419490
lea eax, [ebp - 0x120]
mov edx, dword [esi + 0xe0]
mov dword [ebp - 0x118], esi
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x168]
sub esp, 4
mov dword [ebp - 0x124], edx
lea edx, [ebp - 0x124]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x114], edx
mov dword [ebp - 0xb4], eax
mov eax, dword [esi + 0x104]
mov dword [ebp - 0xc0], esi
cmp dword [esi + 0x108], eax
je 0x42942a
lea eax, [ebp - 0x125]
lea edx, [ebp - 0xc0]
mov byte [ebp - 0x125], 0
movd xmm1, eax
lea eax, [ebp - 0x118]
lea ecx, [esi + 0x104]
movd xmm5, eax
movdqa xmm0, xmm1
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0xe0]
punpckldq xmm0, xmm5
mov dword [ebp - 0x70], ecx
movq qword [ebp - 0x78], xmm0
movd xmm0, edx
punpckldq xmm0, xmm1
movq qword [ebp - 0xe0], xmm0
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00481f90
sub esp, 8
cmp dword [esi + 0x14], 0x3f
jne 0x429502
mov ecx, edi
call fcn.00451070
mov edx, dword [ebp - 0x168]
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0x1c]
mov edx, dword [ebp - 0x168]
mov dword [esp], edx
mov ecx, dword [ebp - 0x11c]
call fcn.0044d050
pxor xmm0, xmm0
mov ecx, esi
sub esp, 4
movups xmmword [ebp - 0x68], xmm0
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x60], 0x1010001
mov dword [ebp - 0x5c], 0x10101
mov dword [esp + 4], ebx
mov edx, dword [ebp - 0x168]
mov dword [esp], edx
call fcn.00427b90
sub esp, 8
cmp dword [esi + 0x14], 0x3a
jne 0x4294e4
mov edx, dword [ebp - 0x168]
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0x5c]
mov ecx, edi
call fcn.00451070
pxor xmm0, xmm0
mov ecx, esi
movups xmmword [ebp - 0x68], xmm0
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x5e], 0x1010101
mov byte [ebp - 0x5a], 1
mov dword [esp + 4], ebx
mov edx, dword [ebp - 0x168]
mov dword [esp], edx
call fcn.00427b90
mov eax, dword [ebp - 0x11c]
sub esp, 8
mov dword [esp], eax
mov ecx, dword [ebp - 0x120]
call fcn.004193a0
sub esp, 4
jmp 0x428b27
mov dword [esp], edi
mov ecx, ebx
call fcn.0044dde0
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0
sub esp, 4
jmp 0x427e73
cmp byte [esi + 0x18], 0
mov ecx, ebx
mov dword [esp], edi
jne 0x428704
call fcn.0044dd70
movd xmm0, dword [esi + 0xc]
mov ebx, dword [esi + 0x60]
lea ecx, [ebp - 0xc0]
sub esp, 4
punpckldq xmm0, xmm0
movq qword [ebp - 0xc0], xmm0
mov eax, dword [ebx]
mov dword [esp + 4], ecx
mov ecx, ebx
mov dword [esp], 0xcc
call dword [eax + 8]
sub esp, 8
jmp 0x428bc3
mov eax, dword [ebp - 0x168]
mov ecx, esi
mov dword [esp], eax
call fcn.0042cca0
sub esp, 4
jmp 0x428639
mov ecx, dword [esi + 0x60]
movd xmm1, dword [esi + 0xc]
lea edi, [ebp - 0x78]
movd xmm3, dword [esi + 0x10]
movd xmm0, dword [ebp - 0x164]
movd xmm4, dword [ebp - 0x170]
mov eax, dword [ecx]
punpckldq xmm1, xmm3
punpckldq xmm0, xmm4
punpcklqdq xmm0, xmm1
movups xmmword [ebp - 0x78], xmm0
mov dword [esp + 4], edi
mov dword [esp], 0xe1
call dword [eax + 8]
mov edi, dword [esi + 0x14]
sub esp, 8
jmp 0x427cd0
sub eax, 0xda
cmp eax, 0x1b
ja 0x428a29
mov ecx, 0xe8cf61f
bt ecx, eax
jae 0x428a29
mov dword [esp], edi
mov ecx, ebx
call fcn.0044dd70
sub esp, 4
cmp dword [esi + 0x14], 0xed
je 0x4290b7
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov edx, dword [ebp - 0x168]
movd xmm6, dword [esi + 0x20]
sub edi, ecx
movd xmm7, dword [esi + 0x1c]
movd xmm1, ecx
movd xmm0, edi
mov edi, dword [ebp - 0x148]
mov eax, dword [edx]
punpckldq xmm1, xmm6
punpckldq xmm0, xmm7
cmp byte [edi + 0x19], 0
je 0x42910c
movq qword [ebp - 0x110], xmm1
mov eax, dword [eax + 0x94]
mov ecx, edx
movq qword [ebp - 0x108], xmm0
movdqu xmm2, xmmword [ebp - 0x110]
movups xmmword [esp], xmm2
call eax
sub esp, 0x10
mov eax, dword [ebp - 0x148]
cmp byte [eax + 0x19], 0
je 0x429141
mov ecx, ebx
call fcn.00451070
cmp dword [esi + 0x14], 0xd2
jne 0x428b27
mov ecx, ebx
call fcn.00451070
jmp 0x427e5c
lea ecx, [eax - 0xbb]
mov edx, 0x1fc86801
bt edx, ecx
jae 0x428a29
cmp eax, 0xd2
jne 0x429042
mov dword [esp], edi
mov ecx, ebx
jmp 0x428704
movq qword [ebp - 0x100], xmm1
mov eax, dword [eax + 0xb4]
mov ecx, edx
movq qword [ebp - 0xf8], xmm0
movdqu xmm3, xmmword [ebp - 0x100]
movups xmmword [esp], xmm3
call eax
mov eax, dword [ebp - 0x148]
sub esp, 0x10
cmp byte [eax + 0x19], 0
jne 0x4290c3
mov edx, dword [esi + 0x60]
movq xmm4, qword [ebp - 0x178]
lea ecx, [ebp - 0xc0]
mov eax, dword [edx]
movq qword [ebp - 0xc0], xmm4
mov dword [esp + 4], ecx
mov ecx, edx
mov dword [esp], 0x11c
call dword [eax + 8]
sub esp, 8
jmp 0x4290c3
mov dword [esp], edi
mov ecx, esi
call fcn.00425820
mov eax, dword [ebp - 0x168]
sub esp, 4
mov dword [esp], eax
mov ecx, dword [ebp - 0x158]
call fcn.0044d050
sub esp, 4
mov eax, dword [ebp - 0x158]
mov dword [esp], eax
mov ecx, dword [ebp - 0x164]
call fcn.004193a0
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x30], 0x584df4
sub esp, 4
test edi, edi
je 0x427cc7
mov ebx, dword [edi + 4]
mov ecx, dword [edi]
test ebx, ebx
je 0x4291fd
mov dword [ebp - 0x158], ecx
mov ecx, dword [edi + 0xc]
mov edx, ebx
mov ebx, dword [ebx + 4]
mov eax, dword [ecx]
mov dword [esp + 8], 4
mov dword [esp + 4], 0xfec
mov dword [esp], edx
call dword [eax + 0xc]
sub esp, 0xc
test ebx, ebx
jne 0x4291d0
mov ecx, dword [ebp - 0x158]
mov eax, dword [ecx]
mov dword [esp + 8], 4
mov dword [esp + 4], 0x10
mov dword [esp], edi
call dword [eax + 0xc]
sub esp, 0xc
jmp 0x427cc7
mov eax, dword [esi + 0xc]
lea ebx, [esi + 0xc]
mov ecx, ebx
mov dword [ebp - 0x164], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x170], eax
call fcn.00451070
mov edi, dword [esi + 0x14]
mov byte [ebp - 0x158], 1
mov dword [ebp - 0x138], edi
jmp 0x427c22
lea ecx, [edi + 4]
call fcn.0044d530
mov edx, dword [eax + 8]
mov dword [ebp - 0x170], edx
jmp 0x42834b
mov ecx, dword [esi + 0x60]
movq xmm5, qword [ebp - 0x170]
lea edi, [ebp - 0x78]
mov eax, dword [ecx]
movq qword [ebp - 0x78], xmm5
mov dword [esp + 4], edi
mov dword [esp], 0x137
call dword [eax + 8]
mov edi, dword [esi + 0x14]
sub esp, 8
cmp edi, 0x5b
jne 0x4283b6
movd xmm6, dword [ebp - 0x164]
mov ecx, dword [esi + 0x60]
lea edi, [ebp - 0x78]
movd xmm0, dword [ebp - 0x158]
movd xmm1, dword [ebp - 0x178]
mov eax, dword [ecx]
punpckldq xmm0, xmm6
punpckldq xmm1, xmm6
punpcklqdq xmm1, xmm0
movups xmmword [ebp - 0x78], xmm1
mov dword [esp + 4], edi
mov dword [esp], 0x138
call dword [eax + 8]
mov edi, dword [esi + 0x14]
sub esp, 8
jmp 0x4283b6
sub eax, 0xdc
cmp eax, 0x18
ja 0x4292f7
mov ecx, 0x1a00d87
bt ecx, eax
jb 0x4282e5
mov dword [esp + 8], 0x585104
mov ecx, esi
mov dword [esp + 4], 0x1c7
mov dword [esp], 0x585138
call fcn.004258f0
lea esi, [esi]
mov ecx, dword [ebp - 0x164]
call fcn.00424480
mov edx, dword [esi + 0xb4]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x158], ecx
jmp 0x4284ad
cmp eax, 0xaa
jg 0x4293ba
cmp eax, 0xa8
jg 0x4282e5
cmp eax, 0x81
je 0x4282e5
jmp 0x4292f7
mov dword [esp + 8], 0x585104
mov ecx, esi
mov dword [esp + 4], 0x336
mov dword [esp], 0x585138
call fcn.004258f0
mov dword [esp], 0x5ec120
call fcn.0054ffc0
test eax, eax
je 0x428488
mov dword [esp], 0x4699b0
call fcn.004013f0
mov dword [esp], 0x5ec120
call fcn.00550090
jmp 0x428488
mov dword [ebp - 0x138], edx
jmp 0x428ab7
sub eax, 0xac
cmp eax, 3
jbe 0x4282e5
jmp 0x4292f7
mov dword [esp + 4], 4
mov dword [esp], 0x10
mov ecx, dword [ebp - 0x158]
call eax
sub esp, 8
jmp 0x42843c
mov dword [esp + 8], 0x585104
mov ecx, esi
mov dword [esp + 4], 0x2ca
mov dword [esp], 0x585138
call fcn.004258f0
lea esi, [esi]
movdqu xmm5, xmmword [ebp - 0xc0]
movups xmmword [esp], xmm5
call dword [eax + 0xb4]
sub esp, 0x10
jmp 0x428b04
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x60], 0x1010000
mov ecx, esi
mov byte [ebp - 0x5a], 0
mov dword [esi + 0xe0], eax
mov eax, dword [ebp - 0x148]
movdqu xmm3, xmmword [eax]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x68], eax
mov eax, 0x101
mov word [ebp - 0x5c], ax
movups xmmword [ebp - 0x138], xmm3
movups xmmword [ebp - 0x78], xmm3
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x168]
mov dword [esp], eax
call fcn.00427b90
mov eax, dword [ebp - 0x114]
sub esp, 8
mov edx, dword [eax]
mov eax, dword [ebp - 0x118]
mov dword [eax + 0xe0], edx
jmp 0x428e81
mov ecx, dword [esi + 0x60]
movq xmm6, qword [ebp - 0x140]
lea edx, [ebp - 0x78]
mov eax, dword [ecx]
movq qword [ebp - 0x78], xmm6
mov dword [esp + 4], edx
mov dword [esp], 0x142
call dword [eax + 8]
sub esp, 8
jmp 0x428b14
mov dword [esp + 8], 0x585104
mov ecx, esi
mov dword [esp + 4], 0x125
mov dword [esp], 0x585138
call fcn.004258f0
mov dword [esp + 8], 0x585104
mov ecx, esi
mov dword [esp + 4], 0x384
mov dword [esp], 0x585138
call fcn.004258f0
mov dword [esp + 8], 0x585104
mov ecx, esi
mov dword [esp + 4], 0x37a
mov dword [esp], 0x585138
call fcn.004258f0
mov dword [esp + 8], 0x585104
mov ecx, esi
mov dword [esp + 4], 0x30b
mov dword [esp], 0x585138
call fcn.004258f0
call fcn.00471540
mov ecx, eax
mov eax, dword [eax]
mov dword [esp + 4], 4
mov dword [esp], 0x1000
call dword [eax + 8]
mov ecx, eax
mov eax, dword [esi + 0x84]
sub esp, 8
mov dword [ecx + 4], 0xff8
lea edx, [ecx + 0x1000]
mov dword [ecx], eax
lea eax, [ecx + 8]
mov dword [esi + 0x84], ecx
add ecx, 0x18
mov dword [esi + 0x8c], edx
mov dword [esi + 0x88], ecx
jmp 0x42843c
mov dword [esp + 8], 0x585104
mov ecx, esi
mov dword [esp + 4], 0x8f
mov dword [esp], 0x585138
call fcn.004258f0
call fcn.00427b20
nop
lea esi, cs:[esi]
lea esi, [esi]