Function at 0x46f250
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x4a0
call 0x46f264
pop eax
mov edi, edx
mov dword [esp + 0x130], ecx
mov dword [esp + 0xf0], eax
mov ecx, edx
mov edx, 0x4c81de
push 0xa
mov dword [esp + 0x138], edi
call fcn.004824b0
add esp, 4
mov dword [esp + 0x20], edx
test eax, eax
mov ecx, 0x4cc61c
mov edx, eax
mov dword [esp + 0x50], 0x4cc61c
cmove edx, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xf4], edx
cmove ecx, eax
mov dword [esp + 0x20], ecx
mov edx, 0x4c81e8
mov ecx, edi
push 0xf
call fcn.004824b0
add esp, 4
mov dword [esp], edx
mov ecx, dword [esp + 0x50]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x50], ecx
mov ecx, dword [esp]
cmove ecx, eax
mov dword [esp], ecx
mov edx, 0x4c81f7
mov ecx, edi
push 0xd
call fcn.004824b0
add esp, 4
mov dword [esp + 0x10], edx
test eax, eax
mov ecx, 0x4cc61c
mov edx, eax
mov dword [esp + 0x18], 0x4cc61c
cmove edx, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x70], edx
cmove ecx, eax
mov dword [esp + 0x10], ecx
mov edx, 0x4c8204
mov ecx, edi
push 0xf
call fcn.004824b0
add esp, 4
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x18]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
cmove ecx, eax
mov dword [esp + 0xc], ecx
mov edx, str..debug_abbrev.debug_addr.debug_aranges.debug_cu_index.debug_info.debug_line.debug_line_str.debug_loc.debug_loclists.debug_ranges.debug_rnglists.debug_str.debug_str_offsets.debug_tu_index.debug_types.debug_abbrev.dwo.debug_info.dwo.debug_line.dwo.debug_loc.dwo.debug_loclists.dwo.debug_rnglists.dwo.debug_str.dwo.debug_str_offsets.dwo.debug_types.dwoNulError
mov ecx, edi
push 0xd
call fcn.004824b0
add esp, 4
mov dword [esp + 4], edx
test eax, eax
mov ecx, 0x4cc61c
mov edx, eax
mov dword [esp + 0x3c], 0x4cc61c
cmove edx, ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x6c], edx
cmove ecx, eax
mov dword [esp + 4], ecx
mov edx, 0x4c8191
mov ecx, edi
push 0xb
call fcn.004824b0
add esp, 4
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x3c]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x1c]
cmove ecx, eax
mov dword [esp + 0x1c], ecx
mov edx, 0x4c819c
mov ecx, edi
push 0xe
call fcn.004824b0
add esp, 4
mov dword [esp + 0x40], edx
test eax, eax
mov ecx, 0x4cc61c
mov edx, eax
mov dword [esp + 0x38], 0x4cc61c
cmove edx, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x64], edx
cmove ecx, eax
mov dword [esp + 0x40], ecx
mov edx, 0x4c81b9
mov ecx, edi
push 0xb
call fcn.004824b0
add esp, 4
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x38]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 8]
cmove ecx, eax
mov dword [esp + 8], ecx
mov edx, 0x4c81c4
mov ecx, edi
push 0xb
call fcn.004824b0
add esp, 4
mov dword [esp + 0x48], edx
test eax, eax
mov ecx, 0x4cc61c
mov edx, eax
mov dword [esp + 0x44], 0x4cc61c
cmove edx, ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x74], edx
cmove ecx, eax
mov dword [esp + 0x48], ecx
mov edx, 0x4c81cf
mov ecx, edi
push 0xf
call fcn.004824b0
add esp, 4
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x44]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x14]
cmove ecx, eax
mov dword [esp + 0x14], ecx
mov edx, 0x4c8213
mov ecx, edi
push 0xa
call fcn.004824b0
add esp, 4
mov dword [esp + 0x4c], edx
test eax, eax
mov ecx, 0x4cc61c
cmovne ecx, eax
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x4c]
cmove ecx, eax
mov dword [esp + 0x4c], ecx
mov edx, 0x4c821d
mov ecx, edi
push 0x12
call fcn.004824b0
add esp, 4
mov esi, eax
mov ebx, edx
mov edx, 0x4c823e
mov ecx, edi
push 0xc
call fcn.004824b0
add esp, 4
test eax, eax
mov ecx, 0x4cc61c
mov edi, dword [esp + 0x4c]
cmove edx, eax
cmove eax, ecx
test esi, esi
cmovne ecx, esi
cmove ebx, esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x31c], esi
mov esi, dword [esp + 4]
mov dword [esp + 0x320], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x324], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x328], esi
mov esi, dword [esp + 0x64]
mov dword [esp + 0x32c], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x330], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x334], esi
mov esi, dword [esp + 8]
mov dword [esp + 0x338], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x33c], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x340], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x344], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x348], esi
mov esi, dword [esp + 0x68]
mov dword [esp + 0x34c], esi
mov dword [esp + 0x350], edi
mov dword [esp + 0x354], ecx
mov dword [esp + 0x358], ebx
mov dword [esp + 0x35c], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x360], edx
mov dword [esp + 0x364], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x368], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x36c], eax
mov eax, dword [esp]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x374], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x378], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x37c], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x380], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x384], 0
mov dword [esp + 0x388], 0
mov byte [esp + 0x38c], 0
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0xf4], eax
je 0x46fa1d
mov ecx, dword [ebp + 8]
mov edx, 0x4c81de
push 0xa
call fcn.004824b0
add esp, 4
mov dword [esp + 0x20], edx
test eax, eax
mov ecx, 0x4cc61c
mov edx, eax
mov dword [esp + 0x50], 0x4cc61c
cmove edx, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x70], edx
cmove ecx, eax
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 8]
mov edx, 0x4c81e8
push 0xf
call fcn.004824b0
add esp, 4
mov dword [esp], edx
mov ecx, dword [esp + 0x50]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x50], ecx
mov ecx, dword [esp]
cmove ecx, eax
mov dword [esp], ecx
mov ecx, dword [ebp + 8]
mov edx, 0x4c81f7
push 0xd
call fcn.004824b0
add esp, 4
mov dword [esp + 0x10], edx
test eax, eax
mov ecx, 0x4cc61c
mov edx, eax
mov dword [esp + 0x18], 0x4cc61c
cmove edx, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x6c], edx
cmove ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 8]
mov edx, 0x4c8204
push 0xf
call fcn.004824b0
add esp, 4
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x18]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
cmove ecx, eax
mov dword [esp + 0xc], ecx
mov ecx, dword [ebp + 8]
mov edx, str..debug_abbrev.debug_addr.debug_aranges.debug_cu_index.debug_info.debug_line.debug_line_str.debug_loc.debug_loclists.debug_ranges.debug_rnglists.debug_str.debug_str_offsets.debug_tu_index.debug_types.debug_abbrev.dwo.debug_info.dwo.debug_line.dwo.debug_loc.dwo.debug_loclists.dwo.debug_rnglists.dwo.debug_str.dwo.debug_str_offsets.dwo.debug_types.dwoNulError
push 0xd
call fcn.004824b0
add esp, 4
mov dword [esp + 4], edx
test eax, eax
mov ecx, 0x4cc61c
mov edx, eax
mov dword [esp + 0x3c], 0x4cc61c
cmove edx, ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x64], edx
cmove ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [ebp + 8]
mov edx, 0x4c8191
push 0xb
call fcn.004824b0
add esp, 4
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x3c]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x1c]
cmove ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 8]
mov edx, 0x4c819c
push 0xe
call fcn.004824b0
add esp, 4
mov dword [esp + 0x40], edx
test eax, eax
mov ecx, 0x4cc61c
mov edx, eax
mov dword [esp + 0x38], 0x4cc61c
cmove edx, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x74], edx
cmove ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [ebp + 8]
mov edx, 0x4c81b9
push 0xb
call fcn.004824b0
add esp, 4
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x38]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 8]
cmove ecx, eax
mov dword [esp + 8], ecx
mov ecx, dword [ebp + 8]
mov edx, 0x4c81c4
push 0xb
call fcn.004824b0
add esp, 4
mov dword [esp + 0x48], edx
test eax, eax
mov ecx, 0x4cc61c
mov edx, eax
mov dword [esp + 0x44], 0x4cc61c
cmove edx, ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x68], edx
cmove ecx, eax
mov dword [esp + 0x48], ecx
mov ecx, dword [ebp + 8]
mov edx, 0x4c81cf
push 0xf
call fcn.004824b0
add esp, 4
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x44]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x14]
cmove ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 8]
mov edx, 0x4c8213
push 0xa
call fcn.004824b0
add esp, 4
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x4c]
test eax, eax
mov edi, 0x4cc61c
cmovne edi, eax
cmove ecx, eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebp + 8]
mov edx, 0x4c821d
push 0x12
call fcn.004824b0
add esp, 4
mov esi, eax
mov ebx, edx
mov ecx, dword [ebp + 8]
mov edx, 0x4c823e
push 0xc
call fcn.004824b0
add esp, 4
test esi, esi
mov ecx, 0x4cc61c
cmove ebx, esi
cmove esi, ecx
test eax, eax
cmovne ecx, eax
cmove edx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c8], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x1cc], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1d0], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1d8], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1e0], edi
mov dword [esp + 0x1e4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x1e8], esi
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x1f4], edx
mov dword [esp + 0x1f8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1fc], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x200], eax
mov eax, dword [esp]
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x208], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x210], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x214], eax
mov dword [esp + 0x218], 0
mov dword [esp + 0x21c], 0
mov byte [esp + 0x220], 0
mov dword [esp + 0x1a8], 1
mov dword [esp + 0x1ac], 1
movzx eax, byte [0x4e4158]
mov ecx, 0x7c
mov edx, 4
call fcn.00413060
test eax, eax
je 0x472f67
lea esi, [esp + 0x1a8]
mov ecx, 0x1f
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x384], eax
cmp dword [ecx + 0x2c], 0
je 0x46fa13
push dword [ecx + 0x28]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov dword [esp + 0x70], 0
jmp 0x46fa23
mov al, 1
mov dword [esp + 0x70], eax
lea edi, [esp + 0x1b0]
lea esi, [esp + 0x31c]
mov ecx, 0x1d
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x1a8], 1
mov dword [esp + 0x1ac], 1
movzx eax, byte [0x4e4158]
mov ecx, 0x7c
mov edx, 4
call fcn.00413060
test eax, eax
je 0x472f30
lea esi, [esp + 0x1a8]
mov ecx, 0x1f
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov dword [esp + 0xac], 4
mov dword [esp + 0xb0], 0
mov dword [esp + 0xa4], eax
mov dword [esp + 0xb4], 0
add ecx, 8
mov dword [esp + 0xa8], ecx
mov esi, dword [eax + 0x1c]
mov ecx, dword [eax + 0x18]
test esi, esi
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x180], esi
mov dword [esp + 0x184], 0
je 0x4701f0
lea eax, [esp + 0x1a8]
mov ecx, 4
xor edi, edi
mov dword [esp + 4], 0
mov dword [esp + 0x6c], eax
jmp 0x46fb26
mov ecx, dword [esp + 0x20]
mov dword [ecx + edx*8], ebx
mov dword [ecx + edx*8 + 4], esi
inc edx
mov esi, dword [esp + 0x180]
mov dword [esp + 4], edx
mov dword [esp + 0xb4], edx
test esi, esi
je 0x46fbb2
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0x17c]
push edi
call fcn.00482650
add esp, 4
cmp dword [esp + 0x1a8], 0
jne 0x4702db
sub esi, dword [esp + 0x180]
movzx eax, byte [esp + 0x1ad]
mov ecx, dword [esp + 0x1b8]
mov ebx, dword [esp + 0x1c0]
mov edi, esi
add edi, dword [esp + 0x184]
cmp al, 3
mov dword [esp + 0x184], edi
je 0x46fbb2
mov edx, dword [esp + 4]
mov esi, ecx
cmp edx, dword [esp + 0xb0]
jne 0x46fb00
lea ecx, [esp + 0xac]
call fcn.0046f1b0
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xb4]
jmp 0x46fb04
mov edi, dword [esp + 4]
mov eax, dword [esp + 0xac]
cmp edi, 0x15
mov dword [esp + 0x48], eax
jae 0x46fbe4
cmp edi, 1
jbe 0x4701f0
mov ecx, dword [esp + 0x48]
mov edx, edi
push 1
call fcn.00482990
add esp, 4
jmp 0x4701f0
movzx eax, byte [0x4e4158]
lea ecx, [edi*4]
and ecx, 0x7ffffff8
mov edx, 4
call fcn.00413060
test eax, eax
mov dword [esp], eax
je 0x472fad
movzx eax, byte [0x4e4158]
mov ecx, pe_nt_image_headers32
mov edx, 4
call fcn.00413060
test eax, eax
je 0x472fc6
mov esi, eax
mov eax, dword [esp + 0x48]
xor ebx, ebx
mov dword [esp + 0x4c], 0x10
mov dword [esp + 4], edi
lea ecx, [eax - 0x10]
add eax, 0xfffffff8
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0x64], ecx
jmp 0x46fc70
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x14]
cmp eax, edi
jae 0x4701d2
mov ecx, dword [esp + 0x48]
mov edx, eax
mov eax, edi
mov dword [esp + 8], esi
sub eax, edx
mov dword [esp + 0x20], edx
cmp eax, 2
lea ecx, [ecx + edx*8]
jae 0x46fca0
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x20]
mov edx, edi
jmp 0x46fe35
mov edx, dword [ecx]
mov esi, dword [ecx + 8]
cmp esi, edx
jae 0x46fcd0
cmp eax, 2
jne 0x46fced
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 8]
mov dword [esp + 0x50], 2
lea edx, [eax + 2]
jmp 0x46fd4d
cmp eax, 2
jne 0x46fd10
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 8]
mov dword [esp + 0x50], 2
lea edx, [eax + 2]
jmp 0x46fe35
mov dword [esp + 0x3c], ebx
mov edi, 2
mov ebx, esi
mov dword [esp + 0x50], edx
nop dword [eax]
mov edx, ebx
mov ebx, dword [ecx + edi*8]
cmp ebx, edx
jae 0x46fd30
inc edi
cmp eax, edi
jne 0x46fd00
jmp 0x46fd2e
mov dword [esp + 0x3c], ebx
mov edi, 2
mov ebx, esi
mov dword [esp + 0x50], edx
nop
mov edx, ebx
mov ebx, dword [ecx + edi*8]
cmp ebx, edx
jb 0x46fd30
inc edi
cmp eax, edi
jne 0x46fd20
mov edi, eax
mov eax, dword [esp + 0x20]
cmp esi, dword [esp + 0x50]
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x50], edi
lea edx, [edi + eax]
jae 0x46fe35
mov edi, edx
cmp eax, edx
mov edx, dword [esp + 4]
mov dword [esp + 0x14], edi
ja 0x472f11
mov eax, dword [esp + 0x50]
cmp edi, edx
ja 0x472efb
cmp eax, 2
jb 0x46fe2d
mov edx, eax
xor edi, edi
mov esi, eax
shr edx, 1
cmp eax, 4
jb 0x46fde3
mov eax, edx
mov edi, dword [esp + 0x64]
mov dword [esp + 0x3c], ebx
mov ebx, ecx
and eax, 0xfffffffe
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
add esi, eax
lea edi, [edi + esi*8]
mov esi, dword [esp + 0x10]
mov eax, esi
nop word cs:[eax + eax]
nop dword [eax]
movdqu xmm0, xmmword [ebx]
movdqu xmm1, xmmword [edi]
pshufd xmm1, xmm1, 0x4e
pshufd xmm0, xmm0, 0x4e
movdqu xmmword [ebx], xmm1
movdqu xmmword [edi], xmm0
add ebx, 0x10
add edi, 0xfffffff0
add esi, 0xfffffffe
jne 0x46fdb0
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x50]
mov edi, eax
cmp edx, eax
je 0x46fe29
sub edx, edi
mov dword [esp + 0x50], esi
shl edi, 3
mov eax, dword [esp + 0x20]
mov esi, edi
mov edi, dword [esp + 0x50]
add edi, eax
shl edi, 3
sub edi, esi
lea esi, [esi + eax*8]
add esi, dword [esp + 0x48]
add edi, dword [esp + 0x44]
nop dword [eax + eax]
movq xmm0, qword [esi]
movq xmm1, qword [edi]
movq qword [esi], xmm1
movq qword [edi], xmm0
add esi, 8
add edi, 0xfffffff8
dec edx
jne 0x46fe10
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov edi, edx
sub edi, eax
jb 0x472e9c
cmp edx, dword [esp + 4]
ja 0x472e9c
mov eax, dword [esp + 0x50]
jae 0x46fe90
cmp eax, 0xa
jae 0x46fe90
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 4]
lea edi, [eax + 0xa]
cmp edi, edx
cmovae edi, edx
mov dword [esp + 0x14], edi
sub edi, eax
jb 0x472eb8
mov eax, dword [esp + 0x50]
cmp eax, 1
adc eax, 0
mov edx, edi
push eax
call fcn.00482990
add esp, 4
cmp ebx, dword [esp + 0x4c]
je 0x46fe9a
jmp 0x46fee7
mov dword [esp + 0x14], edx
cmp ebx, dword [esp + 0x4c]
jne 0x46fee7
movzx eax, byte [0x4e4158]
mov ecx, ebx
shl ecx, 4
mov edx, 4
call fcn.00413060
test eax, eax
je 0x472ebf
mov esi, eax
lea eax, [ebx + ebx]
mov dword [esp + 0x4c], eax
lea eax, [ebx*8]
push eax
push dword [esp + 0xc]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
push dword [esp + 8]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x20]
mov dword [esi + ebx*8], edi
mov dword [esi + ebx*8 + 4], eax
inc ebx
cmp ebx, 2
jb 0x46fc60
mov edi, dword [esp + 4]
mov dword [esp + 8], esi
jmp 0x46ff75
mov dword [esp + 0x50], ecx
mov ecx, dword [esp]
mov eax, edi
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
lea edi, [ebx - 1]
sub edx, ecx
push edx
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x38]
add eax, dword [esp + 0x18]
mov dword [esi + ecx*8 + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esi + ecx*8 + 0xc], eax
not ecx
lea eax, [edx + 8]
add ecx, ebx
shl ecx, 3
push ecx
push eax
push edx
call sub.msvcrt.dll_memmove
add esp, 0xc
cmp edi, 1
mov ebx, edi
mov edi, dword [esp + 4]
jbe 0x4701a0
mov eax, dword [esi + ebx*8 - 8]
mov ecx, dword [esi + ebx*8 - 4]
add ecx, eax
cmp ecx, edi
je 0x46ffd0
mov edx, dword [esi + ebx*8 - 0x10]
cmp edx, eax
jbe 0x46ffd0
cmp ebx, 2
jbe 0x4701aa
lea ecx, [ebx - 3]
mov dword [esp + 0xc], ecx
mov ecx, dword [esi + ebx*8 - 0x18]
lea esi, [edx + eax]
cmp ecx, esi
jbe 0x47017e
cmp ebx, 3
jbe 0x4701b4
mov esi, dword [esp + 8]
add edx, ecx
mov edi, dword [esp + 0xc]
cmp dword [esi + ebx*8 - 0x20], edx
jbe 0x46ffdc
jmp 0x4701c2
cmp ebx, 3
jb 0x46ffe0
mov ecx, dword [esi + ebx*8 - 0x18]
lea edi, [ebx - 3]
cmp ecx, eax
jb 0x46ffe3
lea edi, [ebx - 2]
cmp ebx, edi
jbe 0x472dbe
lea eax, [edi + 1]
mov dword [esp + 0x3c], ebx
cmp ebx, eax
jbe 0x472dac
mov eax, dword [esi + edi*8 + 8]
mov edx, dword [esi + edi*8 + 0xc]
mov ecx, dword [esi + edi*8 + 4]
add edx, eax
mov ebx, edx
sub ebx, ecx
jb 0x472df8
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 4]
cmp edx, eax
ja 0x472e0a
mov dword [esp + 0x20], edx
lea eax, [esi + edi*8]
mov edx, dword [esi + edi*8]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x40], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 0x38], eax
lea ecx, [esi + ecx*8]
mov esi, ebx
mov dword [esp + 0x18], edx
sub esi, edx
lea edi, [ecx + edx*8]
cmp esi, edx
jae 0x4700f0
mov dword [esp + 0x10], ecx
lea eax, [esi*8]
push eax
push edi
mov ebx, esi
mov esi, dword [esp + 8]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x18], 0
lea eax, [esi + ebx*8]
mov dword [esp + 0x50], eax
jle 0x46ff14
test ebx, ebx
jle 0x46ff14
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x20], eax
nop dword [eax + eax]
mov edx, dword [ecx - 8]
mov ebx, dword [edi - 8]
mov esi, 0
mov eax, 0
cmp edx, ebx
sbb esi, esi
cmp edx, ebx
adc eax, 0xffffffff
cmp edx, ebx
lea edi, [edi + esi*8]
mov edx, dword [esp + 0x20]
lea ecx, [ecx + eax*8]
mov eax, ecx
cmovb eax, edi
cmp edi, dword [esp + 0x10]
movq xmm0, qword [eax]
movq qword [edx], xmm0
jbe 0x46ff10
add dword [esp + 0x20], 0xfffffff8
cmp ecx, dword [esp]
ja 0x4700a0
jmp 0x46ff10
lea eax, [edx*8]
push eax
mov esi, ecx
push ecx
push dword [esp + 8]
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x24]
add esp, 0xc
mov ecx, dword [esp]
test eax, eax
lea ecx, [ecx + eax*8]
mov dword [esp + 0x50], ecx
jle 0x47016e
cmp ebx, eax
jle 0x470164
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
lea eax, [eax + ecx*8]
mov ecx, dword [esp]
mov dword [esp + 0x20], eax
nop
mov eax, dword [edi]
xor ebx, ebx
xor edx, edx
cmp eax, dword [ecx]
mov eax, ecx
cmovb eax, edi
setae bl
movq xmm0, qword [eax]
lea ecx, [ecx + ebx*8]
setb bl
movq qword [esi], xmm0
add esi, 8
cmp ecx, dword [esp + 0x50]
jae 0x470167
mov dl, bl
lea edi, [edi + edx*8]
cmp edi, dword [esp + 0x20]
jb 0x470130
jmp 0x470167
mov ecx, dword [esp]
mov eax, esi
jmp 0x46ff19
mov edx, dword [esp + 8]
mov ecx, dword [esp]
mov eax, esi
mov esi, edx
jmp 0x46ff1d
mov esi, dword [esp + 8]
mov edi, dword [esp + 0xc]
cmp ecx, eax
jae 0x46ffe0
jmp 0x46ffe3
mov ebx, 1
jmp 0x46fc64
mov ebx, 2
jmp 0x46fc64
mov esi, dword [esp + 8]
mov ebx, 3
jmp 0x46fc64
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 4]
cmp eax, edi
jb 0x46fc70
push esi
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
push dword [esp]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x80], 8
mov dword [esp + 0x84], 0
mov dword [esp + 0x118], 8
mov dword [esp + 0x11c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x120], 0
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x160], ecx
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], 0
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0x160]
mov dword [esp + 0x6c], ecx
call fcn.00482a60
mov eax, dword [esp + 0x1a8]
cmp eax, 3
jne 0x470388
mov ebx, dword [esp + 0x120]
mov edi, dword [esp + 0x118]
inc ebx
mov ecx, edi
cmp ebx, 1
je 0x4702a5
lea esi, [ecx + 0x150]
dec ebx
call fcn.004858d0
mov ecx, esi
jmp 0x470290
cmp dword [esp + 0x11c], 0
je 0x4702bd
push edi
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x84], 0
je 0x4702db
push dword [esp + 0x80]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0xb0], 0
je 0x4702f9
push dword [esp + 0xac]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0xa4]
lock dec dword [eax]
jne 0x470313
mov bl, 1
lea ecx, [esp + 0xa4]
call fcn.004772f0
mov eax, dword [esp + 0x130]
mov byte [eax], 0x17
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
je 0x47033b
cmp dword [eax + 0x2c], 0
je 0x47033b
push dword [eax + 0x28]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0xf4], 0
mov eax, dword [ebp + 8]
jne 0x470363
cmp dword [eax], 0
je 0x470363
cmp dword [eax + 0x2c], 0
je 0x470363
push dword [eax + 0x28]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x134]
cmp dword [eax + 0x2c], 0
je 0x470380
push dword [eax + 0x28]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ebx, [esp + 0x1c0]
lea esi, [esp + 0xd0]
lea edi, [esp + 0x438]
jmp 0x4703c3
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0x160]
call fcn.00482a60
mov eax, dword [esp + 0x1a8]
cmp eax, 3
je 0x47027f
mov ecx, dword [esp + 0x1ac]
movsd xmm2, qword [ebx + 8]
movq xmm1, qword [ebx]
movq xmm0, qword [esp + 0x1b0]
mov edx, dword [esp + 0x1bc]
cmp eax, 2
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1b8]
movsd qword [esp + 0x190], xmm2
movq xmm2, qword [ebx + 0x10]
movq qword [esp + 0x188], xmm1
movq qword [esp + 0x198], xmm2
je 0x471996
test eax, eax
jne 0x4703a0
movd eax, xmm0
or eax, 4
cmp eax, 5
je 0x4703a0
mov eax, dword [esp + 0x18]
movsd xmm1, qword [esp + 0x198]
mov dword [esp + 0xb8], 0
movq xmm2, qword [esp + 0x188]
mov dword [esp + 0xbc], eax
movq qword [esp + 0xc0], xmm0
mov dword [esp + 0xcc], edx
mov dword [esp + 0xc8], ecx
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0xa8]
movsd qword [esi + 0x10], xmm1
movq xmm1, qword [esp + 0x190]
movq qword [esi], xmm2
mov dword [esp + 0xc], eax
movq qword [esi + 8], xmm1
lea eax, [esp + 0xb8]
lea ecx, [esp + 0x1a8]
push eax
call fcn.004832f0
add esp, 4
mov eax, dword [esp + 0x1a8]
xor eax, 2
or eax, dword [esp + 0x1ac]
je 0x4703a0
push 0x108
lea eax, [esp + 0x1ac]
push eax
lea eax, [esp + 0x398]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x480]
mov ecx, dword [esp + 0x454]
mov edx, dword [esp + 0x450]
mov dword [esp + 4], eax
test ecx, ecx
lea eax, [eax + 8]
mov dword [esp + 0xf8], edx
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], edi
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], 0
je 0x4718e6
mov edi, edx
mov eax, ecx
xor edx, edx
xor esi, esi
xor ecx, ecx
dec eax
inc edi
nop word cs:[eax + eax]
nop
movzx ebx, byte [edi - 1]
cmp ecx, 0x3f
mov byte [esp + 0x20], bl
jne 0x470558
cmp byte [esp + 0x20], 1
ja 0x4718e6
mov dword [esp], eax
movzx eax, byte [esp + 0x20]
mov dword [esp + 0x50], edx
mov dword [esp + 0x10], edi
xor edx, edx
mov ebx, 0
and al, 0x7f
movzx edi, al
shld edx, edi, cl
shl edi, cl
test cl, 0x20
cmovne edx, edi
cmovne edi, ebx
or esi, edx
mov edx, dword [esp + 0x50]
or edx, edi
cmp byte [esp + 0x20], 0
jns 0x4705a6
mov edi, dword [esp + 0x10]
mov eax, dword [esp]
add ecx, 7
inc edi
add eax, 0xffffffff
jb 0x470540
jmp 0x4718e6
mov eax, dword [esp + 0x10]
mov edi, dword [esp]
mov ecx, edx
or ecx, esi
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], edi
jne 0x470687
mov eax, dword [esp + 4]
lea esi, [esp + 0xd0]
lock dec dword [eax]
jne 0x4705e1
mov ecx, dword [esp + 0x480]
call fcn.0047b1e0
mov eax, dword [esp + 0x3a0]
lea ebx, [esp + 0x1c0]
lea edi, [esp + 0x438]
xor eax, 0x2f
or eax, dword [esp + 0x3a4]
je 0x4703a0
cmp dword [esp + 0x3f8], 0
je 0x470624
push dword [esp + 0x3f4]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x404], 0
je 0x470642
push dword [esp + 0x400]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x410], 0
je 0x470660
push dword [esp + 0x40c]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x41c], 0
je 0x4703a0
push dword [esp + 0x418]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
jmp 0x4703a0
mov edi, dword [esp + 4]
test esi, esi
jne 0x4706a2
lea eax, [edx - 1]
cmp eax, dword [edi + 0x10]
jae 0x4706a2
imul ecx, eax, 0x68
add ecx, dword [edi + 8]
jmp 0x470758
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x4718e6
mov eax, dword [esp + 4]
mov dword [esp + 0x20], esi
mov dword [esp + 0x50], edx
mov eax, dword [eax + 0x18]
mov dword [esp + 0x1c], eax
movzx eax, word [ecx + 0x4d6]
mov dword [esp + 4], ecx
mov dword [esp + 0x40], eax
lea ebx, [eax*8]
mov eax, 0xffffffff
test ebx, ebx
je 0x470728
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0x50]
mov edi, dword [ecx + eax*8 + 0xc]
mov edx, dword [ecx + eax*8 + 8]
xor ecx, ecx
mov dword [esp], edi
xor edi, dword [esp + 0x20]
mov dword [esp + 0x10], edx
xor edx, esi
or edx, edi
mov edx, dword [esp + 0x20]
setne cl
cmp esi, dword [esp + 0x10]
sbb edx, dword [esp]
mov edx, 0xff
cmovb ecx, edx
inc eax
add ebx, 0xfffffff8
cmp cl, 1
je 0x4706db
movzx ecx, cl
test ecx, ecx
jne 0x47072c
jmp 0x47074d
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 4]
sub edx, 1
jb 0x4718e6
mov ecx, dword [ecx + eax*4 + 0x4d8]
mov dword [esp + 0x1c], edx
jmp 0x4706c0
mov ecx, dword [esp + 4]
imul eax, eax, 0x68
lea ecx, [ecx + eax + 0x58]
cmp byte [ecx + 0x62], 1
jne 0x470769
mov dword [esp + 0x108], 1
call fcn.00456370
test edx, edx
je 0x470812
shl edx, 4
mov ecx, dword [esp + 0x490]
mov esi, eax
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x74], 0
mov dword [esp + 4], 0
add edx, eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x20], edx
mov dword [esp], ecx
mov ecx, eax
mov dword [esp + 0x4c], eax
and ecx, 0xff00
mov dword [esp + 0x50], ecx
mov ecx, eax
shr ecx, 0x10
mov dword [esp + 0x158], ecx
lea ecx, [edi + 0x60]
mov dword [esp + 0x38], ecx
movzx ecx, ah
movzx eax, al
mov dword [esp + 8], ecx
mov dword [esp + 0x15c], eax
jmp 0x470d36
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0xb4]
test eax, eax
mov dword [esp + 0x20], eax
je 0x4708d2
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0xac]
xor ecx, ecx
mov esi, eax
jmp 0x470875
mov ecx, esi
mov esi, eax
inc ecx
mov eax, esi
sub esi, ecx
jbe 0x4708d2
mov edi, dword [esp + 0x18]
shr esi, 1
xor ebx, ebx
add esi, ecx
cmp dword [edx + esi*8], edi
mov edi, 0xff
setne bl
cmovb ebx, edi
cmp bl, 1
je 0x47086f
movzx ecx, bl
cmp ecx, 0xff
je 0x47086a
mov edi, dword [esp + 0x20]
lea eax, [esi - 1]
cmp eax, edi
jae 0x4718c6
inc esi
cmp esi, 1
je 0x470a06
mov eax, dword [esp + 0x18]
lea ecx, [esi - 1]
cmp dword [edx + esi*8 - 0x10], eax
mov esi, ecx
je 0x4708ad
cmp ecx, edi
jbe 0x470a08
jmp 0x473011
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x40]
mov eax, ecx
or eax, edx
je 0x470958
mov eax, dword [esp + 0x14]
or dword [esp + 0x44], eax
je 0x470958
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x7c], eax
sbb ecx, dword [esp + 0x9c]
jae 0x4709ff
mov edx, dword [esp + 0x88]
cmp edx, dword [esp + 0x84]
jne 0x470929
lea ecx, [esp + 0x80]
call fcn.00485790
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x78]
mov ecx, edx
shl ecx, 5
mov dword [eax + ecx + 4], esi
mov esi, dword [esp + 0x7c]
mov dword [eax + ecx], esi
mov esi, dword [esp + 0x9c]
mov dword [eax + ecx + 0xc], esi
mov esi, dword [esp + 0xa0]
jmp 0x4709d4
xor ebx, ebx
or ecx, edx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
je 0x471686
mov edx, dword [esp + 0x74]
or dword [esp + 0x64], edx
je 0x471686
mov esi, dword [esp + 0x2fc]
mov edi, dword [esp + 0x2f8]
add esi, eax
adc edi, ecx
cmp eax, esi
mov ecx, ecx
sbb ecx, edi
jae 0x4709ff
mov edx, dword [esp + 0x88]
cmp edx, dword [esp + 0x84]
jne 0x4709b5
lea ecx, [esp + 0x80]
call fcn.00485790
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x78]
mov ecx, edx
shl ecx, 5
mov dword [eax + ecx + 4], ebx
mov ebx, dword [esp + 0x7c]
mov dword [eax + ecx], ebx
mov dword [eax + ecx + 0xc], edi
mov edi, dword [esp + 0xc]
inc edx
mov dword [eax + ecx + 8], esi
mov dword [eax + ecx + 0x14], 0
mov dword [eax + ecx + 0x10], 0
mov bl, 1
mov dword [eax + ecx + 0x18], edi
mov dword [esp + 0x88], edx
jmp 0x471686
xor ebx, ebx
jmp 0x471686
xor ecx, ecx
cmp ecx, edi
jne 0x470a13
xor ebx, ebx
jmp 0x47168c
lea eax, [edx + edi*8]
lea esi, [edx + ecx*8]
mov dword [esp + 8], 0
mov dword [esp + 0x38], eax
jmp 0x470a38
mov esi, dword [esp + 0x40]
add esi, 8
cmp esi, dword [esp + 0x38]
je 0x4718bd
mov eax, dword [esp + 0x18]
cmp dword [esi], eax
jne 0x4718bd
mov edx, dword [esp + 0xa8]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x14]
sub ecx, eax
jb 0x4718e6
mov edx, dword [edx + 0x10]
add edx, eax
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ecx
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xb8]
push eax
call fcn.00482650
add esp, 4
cmp dword [esp + 0x1a8], 0
jne 0x4718e6
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0x40], esi
test eax, eax
je 0x470a27
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0x50], ecx
movzx ecx, byte [esp + 0x1c4]
mov dword [esp + 0x1c], eax
add al, al
add al, cl
mov dword [esp + 4], ecx
movzx eax, al
mov dword [esp], eax
jmp 0x470b09
mov esi, dword [esp + 0x20]
cmp esi, dword [esp]
jb 0x470a27
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x50]
cmp ecx, 8
ja 0x4718e6
mov edx, dword [ecx*4 + 0x47349c]
xor eax, eax
xor ecx, ecx
add edx, dword [esp + 0xf0]
jmp edx
mov dword [esp + 4], 1
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xb8]
call fcn.0047da20
mov eax, dword [esp + 0x1a8]
mov ecx, dword [esp + 0x10]
xor eax, 0x26
or eax, dword [esp + 0x1ac]
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x10], ecx
movzx ecx, word [esp + 0x3c]
cmove cx, word [esp + 0x1b0]
mov word [esp + 0x3c], cx
mov eax, dword [esp + 0x20]
cmp esi, eax
je 0x47150c
movq xmm0, qword [esi]
movq xmm1, qword [esi + 8]
mov eax, dword [esp + 0x100]
lea ebx, [esi + 0x10]
movq qword [esp + 0x140], xmm1
movq qword [esp + 0x138], xmm0
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xf8]
lea esi, [esp + 0x138]
push esi
push dword [eax + 0x20]
call fcn.0047bea0
add esp, 8
mov ecx, dword [esp + 0x1a8]
cmp dword [esp + 0x50], 0x800
mov eax, dword [esp + 0x1ac]
mov edx, ecx
jne 0x470fd2
xor edx, 0x2e
or edx, eax
je 0x4718e6
movq xmm0, qword [esp + 0x1b0]
mov edx, dword [esp + 0x1b8]
mov esi, dword [esp + 0x1bc]
movq qword [esp + 0xc0], xmm0
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], edx
mov dword [esp + 0xbc], eax
movzx eax, dx
mov dword [esp + 0xb8], ecx
cmp eax, 0x12
jle 0x471025
cmp eax, 0x13
mov esi, ebx
je 0x470ce3
cmp eax, 0x55
jne 0x470d2a
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xb8]
call fcn.0047da20
mov ecx, dword [esp + 0x1a8]
mov eax, dword [esp + 0x1b0]
mov edx, ecx
and dl, 0x3f
cmp dl, 0x16
je 0x4713a2
cmp ecx, 0x18
mov dword [esp + 4], 0
jne 0x470d2a
mov ecx, dword [edi + 0x64]
sub ecx, dword [esp]
jb 0x4718e6
mul dword [esp + 8]
seto dh
sub ecx, eax
setb dl
test dh, dh
jne 0x4718e6
test dl, dl
jne 0x4718e6
cmp ecx, 8
jb 0x4718e6
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
add ecx, dword [esp]
cmp dword [eax + ecx + 4], 0
jne 0x4718e6
mov eax, dword [eax + ecx]
add eax, dword [esp]
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x48], eax
je 0x471517
movq xmm0, qword [esi]
movq xmm1, qword [esi + 8]
mov eax, dword [esp + 0x100]
mov ebx, esi
movq qword [esp + 0x140], xmm1
movq qword [esp + 0x138], xmm0
lea ecx, [esp + 0x1a8]
lea esi, [esp + 0x138]
lea edx, [esp + 0xf8]
push esi
push dword [eax + 0x20]
call fcn.0047bea0
add esp, 8
mov eax, dword [esp + 0x1a8]
mov ecx, dword [esp + 0x1ac]
mov edx, eax
xor edx, 0x2e
or edx, ecx
je 0x4718e6
mov edx, dword [esp + 0x1b8]
movq xmm0, qword [esp + 0x1b0]
mov esi, dword [esp + 0x1bc]
cmp dx, 0x55
movq qword [esp + 0xc0], xmm0
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], edx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
jne 0x4712f9
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xb8]
call fcn.0047da20
mov ecx, dword [esp + 0x1a8]
mov eax, dword [esp + 0x1b0]
mov esi, ebx
mov edx, ecx
and dl, 0x3f
cmp dl, 0x18
jne 0x471396
mov ecx, dword [edi + 0x64]
sub ecx, dword [esp]
jb 0x4718e6
mul dword [esp + 8]
seto dh
sub ecx, eax
setb dl
test dh, dh
jne 0x4718e6
test dl, dl
jne 0x4718e6
cmp ecx, 8
jb 0x4718e6
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
add ecx, dword [esp]
cmp dword [eax + ecx + 4], 0
jne 0x4718e6
mov eax, dword [eax + ecx]
add esi, 0x10
add eax, dword [esp]
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x48], eax
jne 0x470e9a
jmp 0x471517
xor edx, 0x2e
or edx, eax
je 0x4718e6
movq xmm0, qword [esp + 0x1b0]
mov edx, dword [esp + 0x1b8]
mov esi, dword [esp + 0x1bc]
movq qword [esp + 0xc0], xmm0
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], edx
mov dword [esp + 0xbc], eax
movzx eax, dx
mov dword [esp + 0xb8], ecx
cmp eax, 0x12
jg 0x4710d6
cmp eax, 0x11
mov esi, ebx
je 0x4713db
cmp eax, 0x12
jne 0x470d2a
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xb8]
call fcn.0047da20
mov eax, dword [esp + 0x1a8]
test al, 0x3f
je 0x4712c8
cmp eax, 7
je 0x471297
cmp eax, 0xc
jne 0x470d2a
mov dword [esp + 0x68], esi
mov ecx, dword [esp + 0x488]
mov esi, dword [edi + 0xc]
sub esi, ecx
jb 0x4718e6
mov eax, dword [esp + 0x15c]
mul dword [esp + 0x1b0]
jo 0x4718e6
mov edx, esi
sub edx, eax
jb 0x4718e6
mov ebx, edi
movzx edi, byte [esp + 0x4c]
dec edi
cmp edi, 7
ja 0x4718e6
mov edi, dword [edi*4 + 0x47345c]
add ecx, dword [ebx + 8]
add edi, dword [esp + 0xf0]
jmp edi
cmp eax, 0x13
mov esi, ebx
je 0x470ce3
cmp eax, 0x55
jne 0x470d2a
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xb8]
call fcn.0047da20
mov ecx, dword [esp + 0x1a8]
mov eax, dword [esp + 0x1b0]
mov edx, ecx
and dl, 0x3f
cmp dl, 0x16
je 0x4713a2
cmp ecx, 0x18
mov dword [esp + 4], 0
jne 0x470d2a
mov ecx, dword [edi + 0x64]
sub ecx, dword [esp]
jb 0x4718e6
mul dword [esp + 8]
seto dh
sub ecx, eax
setb dl
test dh, dh
jne 0x4718e6
test dl, dl
jne 0x4718e6
cmp ecx, 4
jb 0x4718e6
mov ecx, dword [esp + 0x38]
mov edx, dword [esp]
mov ecx, dword [ecx]
add ecx, edx
mov eax, dword [eax + ecx]
add eax, edx
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x48], eax
je 0x471517
movq xmm0, qword [esi]
movq xmm1, qword [esi + 8]
mov eax, dword [esp + 0x100]
mov ebx, esi
movq qword [esp + 0x140], xmm1
movq qword [esp + 0x138], xmm0
lea ecx, [esp + 0x1a8]
lea esi, [esp + 0x138]
lea edx, [esp + 0xf8]
push esi
push dword [eax + 0x20]
call fcn.0047bea0
add esp, 8
mov eax, dword [esp + 0x1a8]
mov ecx, dword [esp + 0x1ac]
mov edx, eax
xor edx, 0x2e
or edx, ecx
je 0x4718e6
mov edx, dword [esp + 0x1b8]
movq xmm0, qword [esp + 0x1b0]
mov esi, dword [esp + 0x1bc]
cmp dx, 0x55
movq qword [esp + 0xc0], xmm0
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], edx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
jne 0x4712f9
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xb8]
call fcn.0047da20
mov ecx, dword [esp + 0x1a8]
mov eax, dword [esp + 0x1b0]
mov esi, ebx
mov edx, ecx
and dl, 0x3f
cmp dl, 0x18
jne 0x471396
mov ecx, dword [edi + 0x64]
sub ecx, dword [esp]
jb 0x4718e6
mul dword [esp + 8]
seto dh
sub ecx, eax
setb dl
test dh, dh
jne 0x4718e6
test dl, dl
jne 0x4718e6
cmp ecx, 4
jb 0x4718e6
mov ecx, dword [esp + 0x38]
mov edx, dword [esp]
add esi, 0x10
mov ecx, dword [ecx]
add ecx, edx
mov eax, dword [eax + ecx]
jmp 0x471169
mov eax, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x1b4]
mov dword [esp + 0x74], 0
mov dword [esp + 0x64], 1
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x2f8], ecx
jmp 0x470d2a
mov eax, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x1b4]
mov dword [esp + 0x14], 0
mov dword [esp + 0x44], 1
mov dword [esp + 0xa0], eax
mov dword [esp + 0x9c], ecx
jmp 0x470d2a
mov esi, ebx
movzx eax, dx
add esi, 0x10
cmp eax, 0x11
je 0x4713d3
cmp eax, 0x12
je 0x4714ff
cmp eax, 0x13
je 0x470cdb
jmp 0x4713c6
add esi, 0x10
cmp ecx, 0x16
jne 0x470d2a
cmp byte [edi + 0x70], 0
mov edx, 0
mov ecx, 0
cmovne edx, dword [esp]
cmp word [esp + 0x158], 5
cmovae edx, ecx
add edx, eax
mov dword [esp + 0x48], edx
mov dword [esp + 4], 1
jmp 0x470d2a
mov dword [esp + 4], 1
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xb8]
call fcn.0047da20
mov eax, dword [esp + 0x1a8]
test al, 0x3f
je 0x471468
cmp eax, 0xc
jne 0x470d2a
mov dword [esp + 0x68], esi
mov ecx, dword [esp + 0x488]
mov esi, dword [edi + 0xc]
sub esi, ecx
jb 0x4718e6
mov eax, dword [esp + 0x15c]
mul dword [esp + 0x1b0]
jo 0x4718e6
mov edx, esi
sub edx, eax
jb 0x4718e6
mov ebx, edi
movzx edi, byte [esp + 0x4c]
dec edi
cmp edi, 7
ja 0x4718e6
mov edi, dword [edi*4 + 0x47347c]
add ecx, dword [ebx + 8]
add edi, dword [esp + 0xf0]
jmp edi
mov eax, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x1b4]
mov dword [esp + 0x40], 0
mov dword [esp + 0x1c], 1
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], ecx
jmp 0x470d2a
mov dword [esp + 4], 1
jmp 0x471039
cmp dword [esp + 4], 0
je 0x47084a
mov ebx, dword [esp + 0x158]
lea ecx, [edi + 0x58]
mov esi, edi
mov edi, dword [esp + 0x48]
cmp bx, 5
cmovae ecx, dword [esp + 0x38]
mov eax, dword [ecx + 4]
sub eax, edi
jb 0x4718e6
mov edx, dword [esi + 8]
movq xmm0, qword [esp + 0x478]
mov ecx, dword [ecx]
mov esi, dword [esi + 0xc]
movq qword [esp + 0x1a8], xmm0
mov dword [esp + 0x1b0], edx
mov edx, dword [esp + 0x488]
mov dword [esp + 0x1b4], esi
add ecx, edi
cmp bx, 5
mov dword [esp + 0x1b8], edx
mov edx, dword [esp + 0x4c]
mov word [esp + 0x1bc], dx
mov word [esp + 0x1be], bx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x1c4], eax
setae byte [esp + 0x1c8]
xor ebx, ebx
mov byte [esp + 0x1cb], 0
mov word [esp + 0x1c9], 0
lea ecx, [esp + 0xb8]
lea edx, [esp + 0x1a8]
call fcn.0047e2a0
mov eax, dword [esp + 0xb8]
movdqu xmm1, xmmword [esp + 0xc0]
mov ecx, eax
and cl, 3
cmp cl, 1
jne 0x471672
pshufd xmm2, xmm1, 0xee
pshufd xmm0, xmm1, 0x55
pshufd xmm3, xmm1, 0xff
movd ecx, xmm1
movd esi, xmm2
movd eax, xmm0
movd edx, xmm3
cmp ecx, esi
sbb eax, edx
jae 0x4715b5
mov edx, dword [esp + 0x88]
movdqa xmmword [esp + 0x20], xmm1
cmp edx, dword [esp + 0x84]
jne 0x471634
lea ecx, [esp + 0x80]
call fcn.00485790
mov edx, dword [esp + 0x88]
movdqa xmm0, xmmword [esp + 0x20]
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0xc]
mov ecx, edx
inc edx
mov bl, 1
shl ecx, 5
movdqu xmmword [eax + ecx], xmm0
mov dword [eax + ecx + 0x14], 0
mov dword [eax + ecx + 0x10], 0
mov dword [eax + ecx + 0x18], esi
mov dword [esp + 0x88], edx
jmp 0x4715b5
cmp eax, 2
jne 0x471686
movd eax, xmm1
cmp al, 0x4b
mov bl, ah
je 0x471689
jmp 0x4718e6
and bl, 1
and bl, 1
test bl, 1
lea ebx, [esp + 0x1c0]
mov dword [esp + 0xb8], 2
jne 0x47170f
mov eax, dword [esp + 0x3a0]
xor eax, 0x2f
or eax, dword [esp + 0x3a4]
je 0x47170f
lea eax, [esp + 0x3a0]
mov dword [esp + 0xf8], eax
lea eax, [esp + 0x390]
mov dword [esp + 0x1a8], eax
lea eax, [esp + 0xf8]
mov dword [esp + 0x1ac], eax
lea eax, [esp + 0xa8]
mov dword [esp + 0x1b0], eax
lea ecx, [esp + 0xb8]
lea edx, [esp + 0x1a8]
call fcn.004859c0
cmp dword [esp + 0xb8], 0
je 0x471822
push 0x108
lea eax, [esp + 0x394]
push eax
lea eax, [esp + 0x1b0]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm1, qword [esp + 0xc0]
movq xmm0, qword [esp + 0xb8]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x3c]
movsd qword [ebx + 0xf8], xmm1
movq xmm1, qword [esp + 0xc8]
cmp edx, dword [esp + 0x11c]
movq qword [ebx + 0xf0], xmm0
movq qword [ebx + 0x100], xmm1
mov dword [esp + 0x2f4], eax
mov eax, dword [esp + 0x10]
mov word [esp + 0x2f0], ax
mov word [esp + 0x2f2], cx
mov dword [esp + 0x2c8], 2
mov byte [esp + 0x2e0], 0x4c
jne 0x4717bf
lea ecx, [esp + 0x118]
call fcn.00485830
lea edi, [esp + 0x438]
mov edx, dword [esp + 0x120]
jmp 0x4717c6
lea edi, [esp + 0x438]
imul eax, edx, 0x150
add eax, dword [esp + 0x118]
push 0x150
lea esi, [esp + 0x1ac]
push esi
push eax
mov esi, edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
inc esi
mov dword [esp + 0x120], esi
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0x160]
call fcn.00482a60
mov eax, dword [esp + 0x1a8]
lea esi, [esp + 0xd0]
cmp eax, 3
jne 0x4703c3
jmp 0x47027f
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x47170f
mov esi, dword [esp + 0xc4]
mov edx, dword [esp + 0x88]
shl eax, 3
lea edi, [eax + eax*2]
add esi, 8
jmp 0x471891
mov eax, dword [esp + 0x80]
movdqa xmm0, xmmword [esp + 0x50]
mov edi, dword [esp + 0xc]
mov ecx, edx
inc edx
add esi, 0x18
shl ecx, 5
movdqu xmmword [eax + ecx], xmm0
mov dword [eax + ecx + 0x14], 0
mov dword [eax + ecx + 0x10], 0
mov dword [eax + ecx + 0x18], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x88], edx
add edi, 0xffffffe8
je 0x47170f
movdqu xmm0, xmmword [esi]
cmp edx, dword [esp + 0x84]
mov dword [esp + 0x20], edi
movdqa xmmword [esp + 0x50], xmm0
jne 0x47184a
lea ecx, [esp + 0x80]
call fcn.00485790
mov edx, dword [esp + 0x88]
jmp 0x47184a
mov ebx, dword [esp + 8]
jmp 0x47168c
xor ecx, ecx
test esi, esi
je 0x470a08
mov edx, edi
mov ecx, eax
push 0x4c846c
call fcn.00446c40
add esp, 4
jmp 0x473020
mov eax, dword [esp + 0x480]
lock dec dword [eax]
jne 0x4718fe
mov ecx, dword [esp + 0x480]
call fcn.0047b1e0
mov eax, dword [esp + 0x3a0]
xor eax, 0x2f
or eax, dword [esp + 0x3a4]
je 0x47027f
cmp dword [esp + 0x3f8], 0
je 0x471933
push dword [esp + 0x3f4]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x404], 0
je 0x471951
push dword [esp + 0x400]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x410], 0
je 0x47196f
push dword [esp + 0x40c]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x41c], 0
je 0x47027f
push dword [esp + 0x418]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
jmp 0x47027f
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x80]
cmp esi, 0x15
mov dword [esp + 8], esi
jae 0x4719c9
cmp esi, 1
jbe 0x4720b0
mov edx, esi
mov ecx, edi
push 1
call fcn.00485a90
add esp, 4
jmp 0x4720b8
movzx eax, byte [0x4e4158]
mov ecx, esi
shl ecx, 4
and ecx, 0x7fffffe0
mov edx, 8
call fcn.00413060
test eax, eax
mov dword [esp], eax
je 0x472fdf
movzx eax, byte [0x4e4158]
mov ecx, pe_nt_image_headers32
mov edx, 4
call fcn.00413060
test eax, eax
mov dword [esp + 0xc], eax
je 0x472ff8
lea eax, [edi + 0x40]
xor ecx, ecx
mov dword [esp + 0x4c], 0x10
mov dword [esp + 0x38], edi
mov dword [esp + 0x64], eax
lea eax, [edi - 0x20]
mov dword [esp + 0x44], eax
xor eax, eax
jmp 0x471a50
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
cmp eax, esi
jae 0x472081
mov edx, esi
mov ebx, eax
mov dword [esp + 0x10], ecx
sub edx, eax
mov eax, edi
mov edi, ebx
mov dword [esp + 0x50], ebx
shl edi, 5
cmp edx, 2
lea ecx, [eax + edi]
mov eax, edx
jae 0x471b20
mov edx, esi
mov edi, edx
sub edi, ebx
jb 0x472edf
cmp edx, esi
ja 0x472edf
jae 0x471b80
cmp eax, 0xa
jae 0x471b80
lea edi, [ebx + 0xa]
cmp edi, esi
cmovae edi, esi
mov dword [esp + 0x14], edi
sub edi, ebx
jb 0x472f44
cmp eax, 1
adc eax, 0
mov edx, edi
push eax
call fcn.00485a90
add esp, 4
mov ecx, dword [esp + 0x10]
cmp ecx, dword [esp + 0x4c]
jne 0x471b92
movzx eax, byte [0x4e4158]
shl ecx, 4
mov edx, 4
call fcn.00413060
test eax, eax
je 0x472f4b
mov ecx, dword [esp + 0x10]
mov ebx, eax
lea eax, [ecx + ecx]
mov dword [esp + 0x4c], eax
lea eax, [ecx*8]
push eax
push dword [esp + 0x10]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
push dword [esp + 0xc]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov ecx, dword [esp + 0x10]
jmp 0x471b96
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0x20]
mov ebx, dword [ecx + 0x24]
mov edx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x40], eax
cmp ecx, eax
sbb ebx, edx
jae 0x471ed0
cmp dword [esp + 0x20], 2
mov ebx, dword [esp + 0x50]
jne 0x471eec
mov ecx, dword [esp + 4]
lea edx, [ebx + 2]
mov eax, 2
jmp 0x471f74
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
cmp ecx, dword [esp + 0x4c]
je 0x471ac9
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x50]
mov dword [ebx + ecx*8], edi
mov dword [esp + 0xc], ebx
mov dword [ebx + ecx*8 + 4], eax
inc ecx
cmp ecx, 2
jb 0x471a40
mov edi, dword [esp + 0x38]
jmp 0x471c27
mov eax, dword [esp]
mov ecx, edi
mov edi, dword [esp + 0x10]
sub esi, eax
lea edx, [edi - 1]
mov dword [esp + 0x20], edx
push esi
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x40]
add eax, dword [esp + 0x18]
mov dword [ebx + ecx*8 + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [ebx + ecx*8 + 0xc], eax
not ecx
lea eax, [edx + 8]
add ecx, edi
shl ecx, 3
push ecx
push eax
push edx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 8]
cmp ecx, 1
jbe 0x471ec0
mov dword [esp + 0x10], ecx
mov eax, dword [ebx + ecx*8 - 8]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ebx + ecx*8 - 4]
add ecx, eax
cmp ecx, esi
mov ecx, dword [esp + 0x10]
je 0x471ca0
mov edx, dword [ebx + ecx*8 - 0x10]
cmp edx, eax
jbe 0x471ca0
cmp ecx, 2
jbe 0x472064
lea esi, [ecx - 3]
mov ebx, ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 4], esi
lea esi, [edx + eax]
mov ecx, dword [ecx + ebx*8 - 0x18]
cmp ecx, esi
jbe 0x471cae
mov esi, dword [esp + 8]
cmp ebx, 3
jbe 0x47206e
mov edi, dword [esp + 0xc]
add edx, ecx
cmp dword [edi + ebx*8 - 0x20], edx
mov ebx, edi
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 4]
jbe 0x471cc0
jmp 0x472078
cmp ecx, 3
jb 0x471cc8
lea edx, [ecx - 3]
mov ecx, dword [ebx + ecx*8 - 0x18]
jmp 0x471cc0
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 4]
nop word [eax + eax]
cmp ecx, eax
mov ecx, dword [esp + 0x10]
jb 0x471ccb
lea edx, [ecx - 2]
cmp ecx, edx
jbe 0x472e32
lea eax, [edx + 1]
cmp ecx, eax
jbe 0x472e20
mov ecx, dword [ebx + edx*8 + 4]
mov eax, dword [ebx + edx*8 + 8]
mov ebx, dword [ebx + edx*8 + 0xc]
add ebx, eax
mov dword [esp + 0x20], ebx
sub ebx, ecx
jb 0x472e6c
cmp dword [esp + 0x20], esi
mov dword [esp + 0x3c], eax
ja 0x472e82
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], ecx
shl ecx, 5
mov dword [esp + 4], edx
shl dword [esp + 0x20], 5
add ecx, edi
mov dword [esp + 0x50], ecx
lea esi, [eax + edx*8]
mov eax, dword [eax + edx*8]
mov edx, ebx
mov dword [esp + 0x40], esi
mov esi, eax
sub edx, eax
mov dword [esp + 0x18], eax
shl esi, 5
cmp edx, eax
lea edi, [ecx + esi]
jae 0x471e00
mov esi, edx
mov dword [esp + 0x48], edx
shl esi, 5
push esi
push edi
mov ebx, dword [esp + 8]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x18]
add esi, ebx
test eax, eax
jle 0x471bc0
cmp dword [esp + 0x48], 0
jle 0x471bc0
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x44]
mov dword [esp + 0x20], eax
nop
mov ecx, dword [esi - 0x20]
mov edx, dword [esi - 0x1c]
mov eax, esi
mov esi, 0
cmp ecx, dword [edi - 0x20]
sbb edx, dword [edi - 0x1c]
setb dl
setb cl
adc esi, 0xffffffff
movzx edx, dl
shl esi, 5
add esi, eax
shl edx, 5
sub edi, edx
test cl, cl
mov eax, esi
mov ecx, dword [esp + 0x20]
cmovne eax, edi
cmp edi, dword [esp + 0x50]
movsd xmm1, qword [eax + 8]
movq xmm0, qword [eax]
movsd qword [ecx + 8], xmm1
movsd xmm1, qword [eax + 0x10]
movsd qword [ecx + 0x10], xmm1
movq xmm1, qword [eax + 0x18]
movq qword [ecx], xmm0
movq qword [ecx + 0x18], xmm1
jbe 0x471bc0
add dword [esp + 0x20], 0xffffffe0
cmp esi, dword [esp]
ja 0x471d80
jmp 0x471bc0
push esi
push ecx
push dword [esp + 8]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x18]
add esi, dword [esp]
test eax, eax
jle 0x471eb0
cmp ebx, eax
jle 0x471eb0
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esp]
nop word cs:[eax + eax]
nop
mov ecx, eax
mov eax, dword [edi]
mov ebx, dword [esp + 0x50]
mov edx, ecx
cmp eax, dword [ecx]
mov eax, dword [edi + 4]
sbb eax, dword [ecx + 4]
cmovb edx, edi
setae al
movsd xmm1, qword [edx + 8]
movq xmm0, qword [edx]
movzx eax, al
movsd qword [ebx + 8], xmm1
movsd xmm1, qword [edx + 0x10]
movsd qword [ebx + 0x10], xmm1
movq xmm1, qword [edx + 0x18]
setb dl
shl eax, 5
movq qword [ebx], xmm0
add eax, ecx
movq qword [ebx + 0x18], xmm1
add ebx, 0x20
cmp eax, esi
mov dword [esp + 0x50], ebx
jae 0x471eb3
movzx ecx, dl
shl ecx, 5
add edi, ecx
cmp edi, dword [esp + 0x20]
jb 0x471e40
jmp 0x471eb3
mov eax, dword [esp]
mov ecx, dword [esp + 0x50]
jmp 0x471bc5
mov ecx, 1
jmp 0x471a44
cmp dword [esp + 0x20], 2
mov ebx, dword [esp + 0x50]
jne 0x471f1d
mov ecx, dword [esp + 4]
lea edx, [ebx + 2]
mov eax, 2
jmp 0x471a75
add edi, dword [esp + 0x64]
mov edx, dword [esp + 0x3c]
mov eax, 2
mov esi, ecx
nop dword [eax + eax]
mov ecx, edx
mov ebx, esi
mov esi, dword [edi]
mov edx, dword [edi + 4]
cmp esi, ebx
mov ebx, edx
sbb ebx, ecx
jae 0x471f4f
inc eax
add edi, 0x20
cmp dword [esp + 0x20], eax
jne 0x471f00
jmp 0x471f4b
add edi, dword [esp + 0x64]
mov edx, dword [esp + 0x3c]
mov eax, 2
mov esi, ecx
nop dword [eax]
mov ebx, edx
mov ecx, esi
mov esi, dword [edi]
mov edx, dword [edi + 4]
cmp esi, ecx
mov ecx, edx
sbb ecx, ebx
jb 0x471f4f
inc eax
add edi, 0x20
cmp dword [esp + 0x20], eax
jne 0x471f30
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 8]
cmp ecx, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + ebx]
sbb dword [esp + 0x3c], ecx
mov ecx, dword [esp + 4]
jae 0x471a75
cmp ebx, edx
ja 0x472f91
cmp edx, esi
ja 0x472f7b
cmp eax, 2
jb 0x471a75
mov esi, ecx
mov ecx, eax
mov dword [esp + 0x14], edx
shr eax, 1
lea edx, [ebx + ecx]
mov edi, ecx
shl edx, 5
add edx, dword [esp + 0x44]
nop word cs:[eax + eax]
nop dword [eax]
movsd xmm0, qword [esi + 0x18]
movsd qword [esp + 0x1c0], xmm0
movsd xmm0, qword [esi + 0x10]
movsd qword [esp + 0x1b8], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0x1b0], xmm1
movsd qword [esp + 0x1a8], xmm0
movsd xmm0, qword [edx + 0x18]
movsd qword [esi + 0x18], xmm0
movsd xmm0, qword [edx + 0x10]
movsd qword [esi + 0x10], xmm0
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
add esi, 0x20
movsd xmm0, qword [esp + 0x1c0]
movsd qword [edx + 0x18], xmm0
movsd xmm0, qword [esp + 0x1b8]
movsd qword [edx + 0x10], xmm0
movq xmm0, qword [esp + 0x1a8]
movq xmm1, qword [esp + 0x1b0]
movq qword [edx + 8], xmm1
movq qword [edx], xmm0
add edx, 0xffffffe0
dec eax
jne 0x471fb0
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 4]
mov eax, edi
jmp 0x471a75
mov ecx, 2
jmp 0x471a44
mov ecx, 3
jmp 0x471a44
mov ecx, dword [esp + 0x10]
jmp 0x471a44
push dword [esp + 0xc]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
push dword [esp]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov edi, dword [esp + 0x80]
mov esi, dword [esp + 0x88]
test esi, esi
je 0x4720fd
mov dword [esp + 8], esi
mov eax, esi
xor ecx, ecx
xor edx, edx
mov esi, edi
mov dword [esp + 0x38], edi
shl eax, 5
add eax, edi
mov dword [esp + 0x20], eax
nop dword [eax]
mov edi, dword [esi + 8]
mov eax, dword [esi + 0xc]
cmp edi, ecx
mov ebx, eax
sbb ebx, edx
cmovae ecx, edi
mov edi, dword [esp + 0x20]
cmovae edx, eax
mov dword [esi + 0x14], edx
mov dword [esi + 0x10], ecx
add esi, 0x20
cmp esi, edi
jne 0x4720d0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 8]
jmp 0x4720ff
xor esi, esi
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x120]
mov ebx, dword [esp + 0x84]
cmp dword [esp + 0xb0], 0
mov dword [esp + 0xc], eax
mov dword [esp + 4], edx
mov dword [esp + 0x10], ecx
je 0x472145
push dword [esp + 0xac]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0xa4]
test edi, edi
je 0x470300
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], edi
mov dword [esp + 8], esi
mov dword [esp + 0x160], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x164], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x168], ecx
mov ecx, dword [eax + 0x70]
test ecx, ecx
je 0x472259
mov dword [esp + 0xf8], 8
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x190], 0
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0x188]
call fcn.00482a60
mov eax, dword [esp + 0x1a8]
cmp eax, 3
jne 0x472294
mov eax, dword [esp + 0x1b4]
mov edx, dword [esp + 0x1bc]
movzx ebx, byte [esp + 0x1b0]
mov dword [esp], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x50], edx
mov dword [esp + 0x20], eax
lea ecx, [esp + 0xf8]
call fcn.00485cb0
cmp bl, 0x4b
je 0x4724c2
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
inc ebx
nop dword [eax]
cmp ebx, 1
je 0x472481
lea esi, [ecx + 0x150]
dec ebx
call fcn.004858d0
mov ecx, esi
jmp 0x472240
mov ecx, 8
mov dword [esp + 0x138], 8
mov dword [esp + 0x13c], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x20], 0
jmp 0x4724e6
add dword [esp + 0x18], 8
mov dword [esp + 0x50], 0
mov dword [esp], 8
jmp 0x4722e4
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 8]
cmp eax, 2
je 0x4724b7
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0x188]
call fcn.00482a60
mov eax, dword [esp + 0x1a8]
cmp eax, 3
je 0x4721f7
mov edi, dword [esp + 0x1bc]
mov edx, dword [esp + 0x1ac]
movzx ebx, byte [esp + 0x1b0]
movzx esi, byte [esp + 0x1b3]
movzx ecx, word [esp + 0x1b1]
movq xmm0, qword [esp + 0x1b4]
test eax, eax
mov dword [esp + 0x20], edi
lea edi, [esp + 0x1c0]
movsd xmm2, qword [edi + 8]
movq xmm1, qword [edi]
movsd qword [esp + 0xc0], xmm2
movq xmm2, qword [edi + 0x10]
movq qword [esp + 0xb8], xmm1
movq qword [esp + 0xc8], xmm2
jne 0x4722b0
shl esi, 0x10
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], edx
mov byte [esp + 0x1b0], bl
mov eax, dword [esp + 0x20]
movq xmm1, qword [esp + 0xc0]
movq xmm2, qword [esp + 0xc8]
or ecx, esi
mov esi, edx
mov word [esp + 0x1b1], cx
shr ecx, 0x10
mov byte [esp + 0x1b3], cl
movq qword [esp + 0x1b4], xmm0
movq xmm0, qword [esp + 0xb8]
mov dword [esp + 0x1bc], eax
movq qword [edi + 8], xmm1
movq qword [edi + 0x10], xmm2
movq qword [edi], xmm0
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x1a8]
lea ecx, [esp + 0x390]
push eax
call fcn.004832f0
add esp, 4
mov eax, dword [esp + 0x390]
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 8]
xor eax, 2
or eax, dword [esp + 0x394]
jne 0x4723fb
mov esi, ebx
jmp 0x4722c1
push 0x108
lea eax, [esp + 0x394]
push eax
lea eax, [esp + 0x1b0]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x50]
mov dword [esp + 0x2b0], esi
cmp edx, dword [esp + 0xfc]
jne 0x472448
lea ecx, [esp + 0xf8]
call fcn.00485db0
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0x100]
jmp 0x47244b
mov ecx, dword [esp]
mov esi, ebx
imul eax, edx, 0x110
mov ebx, edx
mov dword [esp], ecx
add eax, ecx
push 0x110
lea ecx, [esp + 0x1ac]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
inc ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x100], ebx
jmp 0x4722c1
cmp dword [esp + 4], 0
je 0x472499
push dword [esp + 0xc]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x1c], 0
je 0x4724ae
push edi
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x3c]
jmp 0x470300
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x20], eax
mov ecx, dword [esp]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], edx
mov eax, dword [esp + 0x3c]
cmp ebx, esi
mov dword [esp + 0x18], edi
mov dword [esp], ecx
mov dword [esp + 0x1a8], eax
jbe 0x472553
test esi, esi
je 0x47253a
mov eax, esi
shl eax, 5
mov dword [esp + 0x40], eax
push eax
push edi
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapReAlloc
mov ecx, dword [esp]
test eax, eax
mov dword [esp + 0x18], eax
jne 0x472553
mov dword [esp + 0x1c], ebx
mov edx, dword [esp + 0x40]
mov ecx, 8
call fcn.00413450
jmp 0x473020
push edi
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov ecx, dword [esp]
mov dword [esp + 0x18], 8
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x3c]
cmp eax, dword [esp + 0x10]
jbe 0x4725c3
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4725a7
imul eax, eax, 0x150
mov dword [esp + 4], eax
push eax
push dword [esp + 0x10]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapReAlloc
mov ecx, dword [esp]
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4725c3
mov dword [esp + 0x1c], ebx
mov edx, dword [esp + 4]
mov ecx, 8
call fcn.00413450
jmp 0x473020
push dword [esp + 0xc]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov ecx, dword [esp]
mov dword [esp + 0xc], 8
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x20], eax
jbe 0x47261a
test eax, eax
je 0x472607
imul eax, eax, 0x110
mov dword [esp + 0x20], eax
push eax
push ecx
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapReAlloc
mov ecx, eax
test eax, eax
jne 0x47261a
mov dword [esp + 0x1c], ebx
mov edx, dword [esp + 0x20]
mov ecx, 8
call fcn.00413450
jmp 0x473020
push ecx
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov ecx, 8
test edi, edi
je 0x470313
mov eax, dword [esp + 0x18]
mov dword [esp + 0x300], edi
mov edi, dword [ebp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x304], eax
mov dword [esp + 0x308], esi
mov esi, dword [esp + 0xc]
cmp dword [edi], 0
mov dword [esp + 0x30c], esi
mov dword [esp + 0x310], edx
mov dword [esp + 0x314], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x318], ecx
je 0x4727a0
mov edx, 0x4c81aa
mov ecx, edi
push 0xf
call fcn.004824b0
add esp, 4
mov esi, edx
test eax, eax
mov edx, 0x4cc61c
cmove esi, eax
cmovne edx, eax
lea ecx, [esp + 0x1a8]
push esi
call fcn.00485f40
add esp, 4
movzx ebx, byte [esp + 0x1a8]
cmp bl, 0x16
je 0x47276a
movq xmm0, qword [esp + 0x1b8]
movsd xmm1, qword [esp + 0x1b1]
movsd xmm2, qword [esp + 0x1c0]
movq xmm3, qword [esp + 0x1a9]
movq qword [esp + 0x127], xmm0
movsd qword [esp + 0x120], xmm1
movsd xmm1, qword [esp + 0x1c8]
movsd qword [esp + 0x188], xmm2
movq xmm2, qword [esp + 0x1d0]
movq qword [esp + 0x118], xmm3
movsd qword [esp + 0x190], xmm1
movq xmm1, qword [esp + 0x1d8]
movq qword [esp + 0x198], xmm2
movq qword [esp + 0x1a0], xmm1
mov edx, 0x4c822f
mov ecx, edi
push 0xf
call fcn.004824b0
add esp, 4
mov esi, edx
test eax, eax
mov edx, 0x4cc61c
cmove esi, eax
cmovne edx, eax
lea ecx, [esp + 0x1a8]
push esi
call fcn.00485f40
add esp, 4
movzx eax, byte [esp + 0x1a8]
cmp al, 0x16
jne 0x4727a7
mov eax, dword [esp + 0x130]
mov byte [eax], 0x17
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x2c], 0
je 0x47278d
push dword [eax + 0x28]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
xor ebx, ebx
lea ecx, [esp + 0x300]
call fcn.004862e0
jmp 0x47033b
mov dl, 0x16
jmp 0x472b6d
movq xmm0, qword [esp + 0x1b8]
movsd xmm1, qword [esp + 0x1b1]
movsd xmm2, qword [esp + 0x1c0]
movq xmm3, qword [esp + 0x1a9]
mov byte [esp + 0x74], al
movq qword [esp + 0x16f], xmm0
movsd qword [esp + 0x168], xmm1
movsd xmm1, qword [esp + 0x1c8]
movsd qword [esp + 0xf8], xmm2
movq xmm2, qword [esp + 0x1d0]
movq qword [esp + 0x160], xmm3
movsd qword [esp + 0x100], xmm1
movq xmm1, qword [esp + 0x1d8]
movq qword [esp + 0x108], xmm2
movq qword [esp + 0x110], xmm1
mov edx, 0x4c824a
mov ecx, edi
push 0x11
call fcn.004824b0
add esp, 4
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x20]
test eax, eax
mov dword [esp + 0x4c], 0x4cc61c
cmove ecx, eax
mov dword [esp + 0x20], ecx
mov ecx, 0x4cc61c
cmove eax, ecx
mov dword [esp + 0x3c], eax
mov edx, 0x4c825b
mov ecx, edi
push 0xf
call fcn.004824b0
add esp, 4
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x6c]
test eax, eax
cmove ecx, eax
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x4c]
cmovne ecx, eax
mov dword [esp + 0x4c], ecx
mov edx, 0x4c826a
mov ecx, edi
push 0xf
call fcn.004824b0
add esp, 4
mov dword [esp + 0x64], edx
mov ecx, dword [esp + 0x64]
test eax, eax
mov dword [esp + 0x50], 0x4cc61c
cmove ecx, eax
mov dword [esp + 0x64], ecx
mov ecx, 0x4cc61c
cmove eax, ecx
mov dword [esp + 0x1c], eax
mov edx, 0x4c82ad
mov ecx, edi
push 0xe
call fcn.004824b0
add esp, 4
mov dword [esp], edx
mov ecx, dword [esp]
test eax, eax
cmove ecx, eax
mov dword [esp], ecx
mov ecx, dword [esp + 0x50]
cmovne ecx, eax
mov dword [esp + 0x50], ecx
mov edx, 0x4c82bb
mov ecx, edi
push 0x16
call fcn.004824b0
add esp, 4
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x10]
test eax, eax
mov dword [esp + 0x18], 0x4cc61c
cmove ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, 0x4cc61c
cmove eax, ecx
mov dword [esp + 0x40], eax
mov edx, 0x4c8279
mov ecx, edi
push 0xe
call fcn.004824b0
add esp, 4
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xc]
test eax, eax
cmove ecx, eax
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
cmovne ecx, eax
mov dword [esp + 0x18], ecx
mov edx, 0x4c8287
mov ecx, edi
push 0x13
call fcn.004824b0
add esp, 4
mov dword [esp + 4], edx
mov ecx, dword [esp + 4]
test eax, eax
mov esi, 0x4cc61c
cmove ecx, eax
cmove eax, esi
mov dword [esp + 4], ecx
mov dword [esp + 0x38], eax
mov edx, 0x4c829a
mov ecx, edi
push 0x13
call fcn.004824b0
add esp, 4
test eax, eax
cmove edx, eax
cmovne esi, eax
mov dword [esp + 8], edx
mov edx, 0x4c82d1
mov ecx, edi
push 0x10
call fcn.004824b0
add esp, 4
movq xmm0, qword [esp + 0x127]
movsd xmm1, qword [esp + 0x120]
movsd xmm2, qword [esp + 0x118]
movsd xmm3, qword [esp + 0x188]
test eax, eax
mov ecx, 0x4cc61c
mov dword [esp + 0x48], esi
mov byte [esp + 0x70], bl
cmove edx, eax
cmovne ecx, eax
cmp dword [edi + 0x2c], 0
mov dword [esp + 0x44], edx
mov dword [esp + 0x14], ecx
movq qword [esp + 0x39f], xmm0
movsd qword [esp + 0x398], xmm1
movsd xmm1, qword [esp + 0x190]
movsd qword [esp + 0x390], xmm2
movsd xmm2, qword [esp + 0x198]
movsd qword [esp + 0x3a7], xmm3
movsd qword [esp + 0x3af], xmm1
movsd xmm1, qword [esp + 0x1a0]
movsd qword [esp + 0x3b7], xmm2
movsd xmm2, qword [esp + 0x160]
movsd qword [esp + 0x3bf], xmm1
movsd xmm1, qword [esp + 0x168]
movsd qword [esp + 0x80], xmm2
movsd xmm2, qword [esp + 0x110]
movsd qword [esp + 0x88], xmm1
movsd xmm1, qword [esp + 0x16f]
movsd qword [esp + 0x150], xmm2
movsd xmm2, qword [esp + 0xf8]
movsd qword [esp + 0x8f], xmm1
movsd xmm1, qword [esp + 0x108]
movsd qword [esp + 0x138], xmm2
movsd xmm2, qword [esp + 0x3b8]
movsd qword [esp + 0x148], xmm1
movsd xmm1, qword [esp + 0x100]
movsd qword [esp + 0x140], xmm1
movsd xmm1, qword [esp + 0x3bf]
movsd qword [esp + 0xe7], xmm1
movsd xmm1, qword [esp + 0x3b0]
movsd qword [esp + 0xe0], xmm2
movsd xmm2, qword [esp + 0x3a8]
movsd qword [esp + 0xd8], xmm1
movsd xmm1, qword [esp + 0x3a0]
movsd qword [esp + 0xd0], xmm2
movq xmm2, qword [esp + 0x390]
movsd qword [esp + 0xc8], xmm1
movq xmm1, qword [esp + 0x398]
movq qword [esp + 0xb8], xmm2
movq qword [esp + 0xc0], xmm1
je 0x472b58
push dword [edi + 0x28]
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov ebx, dword [esp + 0x4c]
movzx edx, byte [esp + 0x70]
mov dh, byte [esp + 0x74]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x318]
mov ecx, dword [esp + 0x130]
movsd xmm7, qword [esp + 0x310]
cmp dword [esp + 0xf4], 0
mov dword [ecx + 0x110], eax
mov eax, dword [esp + 0x134]
movsd qword [ecx + 0x108], xmm7
movsd xmm7, qword [esp + 0x308]
movsd qword [ecx + 0x100], xmm7
movsd xmm7, qword [esp + 0x300]
movsd xmm2, qword [eax + 0x10]
movsd xmm3, qword [eax + 0x18]
movq xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd xmm4, qword [eax + 0x20]
movsd xmm5, qword [eax + 0x28]
movsd xmm6, qword [eax + 0x30]
mov eax, dword [esp + 0x3c]
movsd qword [ecx + 0xf8], xmm7
movsd qword [ecx + 0xd0], xmm2
movsd qword [ecx + 0xd8], xmm3
movsd xmm2, qword [esp + 0xb8]
movsd xmm3, qword [esp + 0xe7]
movsd qword [ecx + 0xc8], xmm1
movq qword [ecx + 0xc0], xmm0
movsd qword [ecx + 0xe0], xmm4
movsd qword [ecx + 0xe8], xmm5
movsd qword [ecx + 0xf0], xmm6
movsd xmm1, qword [esp + 0xc0]
movsd qword [ecx + 1], xmm2
movsd qword [ecx + 0x30], xmm3
movsd xmm2, qword [esp + 0xe0]
movsd xmm3, qword [esp + 0xd8]
movsd qword [ecx + 9], xmm1
movsd xmm1, qword [esp + 0x88]
movsd qword [ecx + 0x29], xmm2
movsd qword [ecx + 0x21], xmm3
movsd xmm2, qword [esp + 0xd0]
movsd xmm3, qword [esp + 0xc8]
movsd qword [ecx + 0x19], xmm2
movsd qword [ecx + 0x11], xmm3
movsd qword [ecx + 0x41], xmm1
movsd xmm1, qword [esp + 0x8f]
movsd xmm2, qword [esp + 0x80]
movq xmm3, qword [esp + 0x138]
movsd qword [ecx + 0x48], xmm1
movsd xmm1, qword [esp + 0x140]
movsd qword [ecx + 0x39], xmm2
movq xmm2, qword [esp + 0x150]
movq qword [ecx + 0x50], xmm3
movsd qword [ecx + 0x58], xmm1
movq xmm1, qword [esp + 0x148]
movq qword [ecx + 0x68], xmm2
movq qword [ecx + 0x60], xmm1
mov byte [ecx], dl
mov byte [ecx + 0x38], dh
mov dword [ecx + 0x70], eax
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x74], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0x78], ebx
mov dword [ecx + 0x7c], esi
mov dword [ecx + 0x80], eax
mov eax, dword [esp + 0x50]
mov dword [ecx + 0x84], edi
mov dword [ecx + 0x88], eax
mov eax, dword [esp]
mov dword [ecx + 0x8c], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 0x90], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x94], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x98], eax
mov eax, dword [esp + 0xc]
mov dword [ecx + 0x9c], eax
mov eax, dword [esp + 0x38]
mov dword [ecx + 0xa0], eax
mov eax, dword [esp + 4]
mov dword [ecx + 0xa4], eax
mov eax, dword [esp + 0x48]
mov dword [ecx + 0xa8], eax
mov eax, dword [esp + 8]
mov dword [ecx + 0xac], eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 0xb0], eax
mov eax, dword [esp + 0x44]
mov dword [ecx + 0xb4], eax
mov eax, dword [ebp + 8]
mov dword [ecx + 0xb8], 0x4cc61c
mov dword [ecx + 0xbc], 0
jne 0x470380
cmp dword [eax], 0
jne 0x47036a
jmp 0x470380
mov edx, 0x4c78b0
mov dword [esp + str.Index_out_of_bounds], 0x4c7670
jmp 0x472dce
mov dword [esp + str.Index_out_of_bounds], 0x4c7670
mov edx, 0x4c78a0
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4cc61c
mov dword [ecx + 0xc], 0
call fcn.004468e0
jmp 0x473020
push 0x4c78c0
call fcn.00448980
add esp, 4
jmp 0x473020
mov ecx, edx
mov edx, eax
push 0x4c78c0
call fcn.004475b0
add esp, 4
jmp 0x473020
mov edx, 0x4c78b0
mov dword [esp + str.Index_out_of_bounds], 0x4c7670
jmp 0x472e42
mov dword [esp + str.Index_out_of_bounds], 0x4c7670
mov edx, 0x4c78a0
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x4cc61c
mov dword [ecx + 0xc], 0
call fcn.004468e0
jmp 0x473020
mov edx, dword [esp + 0x20]
push 0x4c78c0
call fcn.00448980
add esp, 4
jmp 0x473020
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x20]
push 0x4c78c0
call fcn.004475b0
add esp, 4
jmp 0x473020
mov edx, 0x2c
mov ecx, str.assertion_failed:_end___start__end___lenAxL
push 0x4c793c
call fcn.004478a0
add esp, 4
jmp 0x473020
mov eax, 0x4c794c
jmp 0x472f16
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_srcio_borrowed_buf.rs_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_alloc_srccollections_btree_navigate.rs
push 0x4c78f0
mov esi, dword [esp + 0xc]
call fcn.004478a0
add esp, 4
jmp 0x473020
mov edx, 0x2c
mov ecx, str.assertion_failed:_end___start__end___lenAxL
push 0x4c793c
call fcn.004478a0
add esp, 4
jmp 0x473020
mov ecx, dword [esp + 0x14]
push 0x4c7890
call fcn.004475b0
add esp, 4
jmp 0x473020
mov eax, 0x4c7890
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
push eax
mov esi, dword [esp + 0xc]
call fcn.00448980
add esp, 4
jmp 0x473020
mov ecx, 4
mov edx, 0x7c
call fcn.00413450
jmp 0x473020
mov eax, 0x4c794c
jmp 0x472f9a
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_srcio_borrowed_buf.rs_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_alloc_srccollections_btree_navigate.rs
push 0x4c78f0
call fcn.004478a0
add esp, 4
jmp 0x473020
mov ecx, 4
mov edx, 0x7c
call fcn.00413450
jmp 0x473020
mov ecx, edx
mov edx, esi
push 0x4c7890
call fcn.004475b0
add esp, 4
jmp 0x473020
mov eax, 0x4c7890
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
push eax
call fcn.00448980
add esp, 4
jmp 0x473020
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_srcio_borrowed_buf.rs_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_alloc_srccollections_btree_navigate.rs
push 0x4c78d0
call fcn.004478a0
add esp, 4
jmp 0x473020
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_srcio_borrowed_buf.rs_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_alloc_srccollections_btree_navigate.rs
push 0x4c78e0
call fcn.004478a0
add esp, 4
jmp 0x473020
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_srcio_borrowed_buf.rs_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_alloc_srccollections_btree_navigate.rs
push 0x4c78d0
call fcn.004478a0
add esp, 4
jmp 0x473020
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112librarycore_srcio_borrowed_buf.rs_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_alloc_srccollections_btree_navigate.rs
push 0x4c78e0
call fcn.004478a0
add esp, 4
jmp 0x473020
mov edx, edi
push 0x4c847c
call fcn.00446be0
add esp, 4
ud2