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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xdc
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
cmp byte [esi + 0x28], 0
jne 0x403da8
cmp dword [esi + 8], 0
je 0x403da8
lea ecx, [ebp - 0x94]
mov edx, esi
call fcn.00407840
movzx eax, byte [esi + 0x24]
test eax, eax
je 0x403e77
cmp eax, 1
jne 0x40584a
mov edi, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x88]
cmp edi, 0x15
mov eax, edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x30], ebx
jae 0x403fb2
cmp edi, 2
jb 0x404db5
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x94]
mov edi, dword [ebp - 0x8c]
mov dword [ebp - 0x18], 0
lea edx, [eax - 1]
lea eax, [ebx + eax*2 - 2]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x1c], eax
jmp 0x403de0
mov byte [eax + 0x44], 2
jmp 0x4055be
mov eax, dword [ebp - 0x30]
lea ebx, [eax + edx*2]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x20]
mov word [ebx], ax
mov ebx, dword [ebp - 0x30]
add dword [ebp - 0x18], 0xfffffffe
test esi, esi
mov edx, esi
je 0x404db5
mov ecx, ebx
movzx ebx, word [ebx + edx*2]
movzx eax, bx
cmp edi, eax
jbe 0x405700
movzx esi, word [ecx + edx*2 - 2]
mov ecx, edi
mov dword [ebp - 0x14], esi
movzx esi, si
cmp edi, esi
jbe 0x405707
lea ecx, [edx - 1]
mov dword [ebp - 0x20], ecx
lea ecx, [eax + eax*2]
lea eax, [esi + esi*2]
mov esi, dword [ebp - 0x10]
mov eax, dword [esi + eax*4 + 8]
cmp dword [esi + ecx*4 + 8], eax
mov esi, dword [ebp - 0x20]
jbe 0x403dcf
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx + edx*2 - 2]
mov word [ecx], bx
mov ecx, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x18]
sub ecx, esi
cmp ecx, 3
mov ecx, dword [ebp - 0x1c]
jb 0x403dc0
nop dword [eax]
movzx esi, word [ecx + ebx + 2]
movzx edx, si
cmp edi, edx
jbe 0x40566c
lea ecx, [edx + edx*2]
mov edx, dword [ebp - 0x10]
cmp dword [edx + ecx*4 + 8], eax
jbe 0x403e6f
mov ecx, dword [ebp - 0x1c]
mov word [ecx + ebx], si
add ebx, 2
jne 0x403e40
add ebx, ecx
jmp 0x403dc6
add ebx, dword [ebp - 0x1c]
jmp 0x403dc6
mov edi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x88]
cmp edi, 0x15
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x40], edi
jae 0x404711
cmp edi, 2
jb 0x404db5
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x24]
lea edx, [ecx + eax*2 - 2]
lea ebx, [eax - 1]
lea ecx, [ecx + eax*2 + 2]
mov dword [ebp - 0x2c], edx
mov edx, 0xfffffffd
jmp 0x403edb
movzx edi, word [ebp - 0x1c]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x20]
mov word [ebx], di
add ecx, 0xfffffffe
inc edx
test esi, esi
mov ebx, esi
je 0x404db5
mov eax, dword [ebp - 0x24]
lea esi, [ebx - 1]
movzx edi, word [eax + ebx*2 - 2]
movzx eax, word [eax + ebx*2]
cmp ax, di
jae 0x403ecd
mov word [ebp - 0x1c], di
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x10], esi
lea ecx, [edi + ebx*2 - 2]
lea ebx, [edi + ebx*2]
mov word [ecx], ax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x18], ecx
sub eax, esi
cmp eax, 3
jb 0x403ec0
mov esi, dword [ebp - 0x18]
movzx edi, word [ebp - 0x1c]
movzx ecx, word [esi + 4]
cmp cx, di
jae 0x403ec4
mov word [ebx], cx
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x20]
cmp eax, 3
je 0x403eca
mov esi, dword [ebp - 0x18]
lea ebx, [esi + 4]
movzx esi, word [esi + 6]
cmp si, di
jae 0x403f97
mov word [ebx], si
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x10]
cmp eax, 4
je 0x403eca
mov eax, dword [ebp - 0x18]
mov ebx, ecx
mov dword [ebp - 0x28], edx
movzx eax, word [eax + 8]
cmp ax, di
mov word [ebp - 0x14], ax
jae 0x403f9f
nop word [eax + eax]
movzx eax, word [ebp - 0x14]
mov word [ebx], ax
mov eax, dword [ebp - 0x28]
sub eax, 1
jb 0x403faa
mov dword [ebp - 0x28], eax
movzx eax, word [ebx + 4]
add ebx, 2
cmp ax, di
mov word [ebp - 0x14], ax
jb 0x403f70
jmp 0x403eca
mov esi, dword [ebp - 0x10]
jmp 0x403eca
mov ebx, dword [ebp - 0x18]
add ebx, 6
jmp 0x403eca
mov ebx, dword [ebp - 0x2c]
jmp 0x403eca
test edi, edi
js 0x40585b
mov eax, dword [0x56bbf8]
mov esi, edi
and esi, 0xfffffffe
mov eax, dword [eax]
test eax, eax
jne 0x403fdf
call sub.kernel32.dll_GetProcessHeap
test eax, eax
je 0x40583d
mov ecx, dword [0x56bbf8]
mov dword [ecx], eax
push esi
push 0
push eax
call sub.kernel32.dll_HeapAlloc
test eax, eax
mov dword [ebp - 0x20], eax
je 0x40583d
mov eax, edi
pxor xmm0, xmm0
xor ecx, ecx
mov esi, 4
mov dword [ebp - 0x68], 4
shr eax, 1
movq qword [ebp - 0x64], xmm0
mov dword [ebp - 0x6c], eax
lea eax, [ebx - 0x10]
mov dword [ebp - 0xe0], eax
lea eax, [ebx - 2]
mov dword [ebp - 0x50], eax
mov eax, edi
jmp 0x404037
mov ecx, 1
mov eax, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x30]
test eax, eax
je 0x4055c9
cmp eax, 1
mov dword [ebp - 0x34], esi
je 0x4041f0
movzx esi, word [ebx + eax*2 - 2]
mov edi, dword [ebp - 0x8c]
movzx edx, si
cmp edi, edx
jbe 0x405724
movzx esi, word [ebx + eax*2 - 4]
mov dword [ebp - 0x24], ecx
movzx ecx, si
cmp edi, ecx
jbe 0x40572b
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x94]
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x1c]
lea edx, [edx + edx*2]
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + ecx*4 + 8]
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
cmp dword [ecx + edx*4 + 8], ebx
jbe 0x404210
lea ecx, [eax + eax]
mov edx, eax
mov edi, 2
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x30]
lea edx, [ecx + edx*2]
nop word [eax + eax]
mov ecx, dword [ebp - 0x18]
mov ebx, edi
mov eax, edx
sub ecx, edi
mov dword [ebp - 0x2c], ecx
je 0x404103
mov edi, dword [ebp - 0x1c]
movzx edx, si
cmp edi, edx
jbe 0x4056c9
movzx esi, word [eax - 6]
movzx edx, si
cmp edi, edx
jbe 0x4056d2
mov ecx, dword [ebp - 0x10]
lea edx, [edx + edx*2]
lea edi, [ebx + 1]
mov ecx, dword [ecx + edx*4 + 8]
lea edx, [eax - 2]
cmp dword [ebp - 0x14], ecx
mov dword [ebp - 0x14], ecx
ja 0x4040c0
mov edi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
cmp edx, edi
jb 0x405862
cmp edx, dword [ebp - 0x3c]
ja 0x405873
cmp ebx, 2
jb 0x4041df
mov edx, ebx
xor esi, esi
shr edx, 1
cmp ebx, 0x10
mov dword [ebp - 0x28], edx
jb 0x4041a6
mov esi, edx
mov edx, eax
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x38]
and esi, 0xfffffff8
lea edi, [ecx + eax]
mov eax, edx
mov edx, dword [ebp - 0x28]
xor ecx, ecx
and edx, 0xfffffff8
nop word cs:[eax + eax]
nop dword [eax + eax]
movdqu xmm1, xmmword [edi]
movdqu xmm0, xmmword [eax + ecx*2 - 4]
pshufd xmm1, xmm1, 0x4e
pshufd xmm0, xmm0, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm1, xmm1, 0x1b
pshufhw xmm0, xmm0, 0x1b
movdqu xmmword [eax + ecx*2 - 4], xmm1
add ecx, 8
movdqu xmmword [edi], xmm0
add edi, 0xfffffff0
cmp edx, ecx
jne 0x404160
mov edx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x2c]
cmp edx, esi
je 0x4041d9
mov edx, dword [ebp - 0x38]
sub edx, esi
sub edx, esi
add edx, dword [ebp - 0x50]
movzx ecx, word [eax + esi*2 - 4]
mov word [ebp - 0x14], cx
mov ecx, eax
mov eax, edx
movzx edx, word [edx]
mov word [ecx + esi*2 - 4], dx
mov edx, eax
mov eax, ecx
movzx ecx, word [ebp - 0x14]
inc esi
mov word [edx], cx
add edx, 0xfffffffe
cmp dword [ebp - 0x28], esi
jne 0x4041b0
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
test edi, edi
jne 0x40426c
jmp 0x404370
mov ebx, 1
xor edi, edi
cmp ecx, dword [ebp - 0x64]
je 0x404379
mov esi, dword [ebp - 0x34]
jmp 0x404389
mov ecx, dword [ebp - 0x24]
add eax, 0xfffffffd
mov ebx, 1
nop dword [eax + eax]
cmp eax, 0xffffffff
je 0x4046df
movzx ecx, si
cmp edi, ecx
jbe 0x4056c7
mov ecx, dword [ebp - 0x30]
movzx esi, word [ecx + eax*2]
movzx ecx, si
cmp edi, ecx
jbe 0x4056d0
mov edx, dword [ebp - 0x10]
lea ecx, [ecx + ecx*2]
inc ebx
dec eax
mov ecx, dword [edx + ecx*4 + 8]
cmp dword [ebp - 0x14], ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x24]
jbe 0x404220
mov edx, dword [ebp - 0x18]
mov edi, edx
sub edi, ebx
test edi, edi
je 0x404370
cmp ebx, 9
ja 0x404370
cmp edx, dword [ebp - 0x3c]
ja 0x405899
mov eax, dword [ebp - 0x30]
mov esi, edi
not esi
add esi, edx
mov dword [ebp - 0x38], esi
lea eax, [eax + edi*2]
nop dword [eax]
dec edi
mov ebx, edx
sub ebx, edi
mov dword [ebp - 0x2c], edi
jb 0x4057a5
cmp ebx, 2
jb 0x404353
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x1c]
lea edx, [eax + ecx*2]
movzx esi, word [edx + 2]
movzx eax, si
cmp edi, eax
jbe 0x4056d9
movzx ecx, word [edx]
mov dword [ebp - 0x44], ecx
movzx ecx, cx
cmp edi, ecx
jbe 0x4056e0
mov edi, esi
mov esi, dword [ebp - 0x10]
lea ecx, [ecx + ecx*2]
lea eax, [eax + eax*2]
mov ecx, dword [esi + ecx*4 + 8]
cmp dword [esi + eax*4 + 8], ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x48]
jbe 0x404353
mov ecx, dword [ebp - 0x38]
mov word [edx], di
cmp ebx, 3
mov edi, eax
mov dword [ebp - 0x28], ebx
jb 0x40433d
nop word cs:[eax + eax]
nop
movzx eax, word [edi + 2]
movzx edx, ax
cmp dword [ebp - 0x1c], edx
jbe 0x40564d
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
lea edx, [edx + edx*2]
cmp dword [esi + edx*4 + 8], ebx
jbe 0x404344
mov ebx, dword [ebp - 0x28]
mov word [edi], ax
add edi, 2
dec ecx
jne 0x404310
jmp 0x404347
add edx, 2
mov edi, edx
jmp 0x404347
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x24]
mov word [edi], ax
mov eax, dword [ebp - 0x48]
mov edi, dword [ebp - 0x2c]
test edi, edi
je 0x404370
mov edx, dword [ebp - 0x18]
inc dword [ebp - 0x38]
add eax, 0xfffffffe
cmp ebx, 0xa
jb 0x404290
nop dword [eax]
cmp ecx, dword [ebp - 0x64]
jne 0x404200
mov edx, ecx
lea ecx, [ebp - 0x68]
call fcn.00403590
mov esi, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x60]
mov dword [esi + ecx*8], edi
mov dword [esi + ecx*8 + 4], ebx
inc ecx
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x34], esi
cmp ecx, 2
mov dword [ebp - 0x60], ecx
jb 0x404029
nop word cs:[eax + eax]
nop dword [eax]
cmp dword [esi + ecx*8 - 8], 0
lea ebx, [ecx - 1]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x48], ebx
je 0x404410
mov edx, dword [esi + ecx*8 - 0xc]
mov eax, dword [esi + ebx*8 + 4]
cmp edx, eax
jbe 0x404410
cmp ecx, 3
jb 0x4046f2
lea ebx, [ecx - 3]
mov dword [ebp - 0x38], ebx
mov ebx, ecx
mov ecx, dword [esi + ecx*8 - 0x14]
lea esi, [eax + edx]
cmp ecx, esi
jbe 0x4046c9
cmp ebx, 4
jb 0x4046fc
mov esi, dword [ebp - 0x34]
add edx, ecx
cmp dword [esi + ebx*8 - 0x1c], edx
mov edx, dword [ebp - 0x38]
jbe 0x404420
jmp 0x404709
cmp ecx, 3
jb 0x404427
lea edx, [ecx - 3]
mov eax, dword [esi + ebx*8 + 4]
mov ecx, dword [esi + ecx*8 - 0x14]
cmp ecx, eax
mov ecx, dword [ebp - 0x24]
jb 0x40442a
lea edx, [ecx - 2]
lea edi, [edx + 1]
cmp edi, ecx
mov eax, edi
mov dword [ebp - 0x44], edi
jae 0x4056ae
mov edi, dword [esi + edx*8 + 4]
mov eax, dword [esi + edx*8]
mov ecx, dword [esi + edx*8 + 8]
add eax, edi
mov esi, eax
mov dword [ebp - 0x18], eax
sub esi, ecx
jb 0x405782
cmp eax, dword [ebp - 0x3c]
mov dword [ebp - 0x70], edi
ja 0x40578c
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x40], ecx
mov edi, dword [eax + edx*8 + 0xc]
mov edx, dword [ebp - 0x30]
lea ecx, [edx + ecx*2]
mov edx, esi
mov dword [ebp - 0x4c], edi
sub edx, edi
lea ebx, [ecx + edi*2]
mov dword [ebp - 0x1c], ecx
cmp edx, edi
jae 0x404570
lea eax, [edx + edx]
push eax
push ebx
mov esi, dword [ebp - 0x20]
push esi
mov dword [ebp - 0x14], edx
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x14]
add esp, 0xc
lea eax, [esi + ecx*2]
test edi, edi
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0x10], eax
jle 0x404650
test ecx, ecx
jle 0x404650
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
lea edi, [edx + ecx*2]
mov ecx, dword [ebp - 0x10]
nop word cs:[eax + eax]
nop
mov dword [ebp - 0x10], ecx
movzx ecx, word [ecx - 2]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x14]
movzx eax, cx
cmp ebx, eax
jbe 0x4055ed
mov ecx, dword [ebp - 0x18]
lea esi, [ecx - 2]
movzx ecx, word [esi]
movzx edx, cx
cmp ebx, edx
jbe 0x405602
mov ebx, dword [ebp - 0x28]
lea eax, [eax + eax*2]
lea ecx, [edx + edx*2]
mov eax, dword [ebx + eax*4 + 8]
cmp eax, dword [ebx + ecx*4 + 8]
ja 0x404540
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x18]
lea eax, [ecx - 2]
jmp 0x404546
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
movzx ecx, word [ecx - 2]
cmp esi, edx
mov word [edi], cx
jbe 0x404560
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x20]
mov ebx, esi
mov ecx, eax
ja 0x4044f0
mov ecx, dword [ebp - 0x20]
mov edx, esi
mov dword [ebp - 0x10], eax
jmp 0x404663
lea eax, [edi + edi]
push eax
push ecx
push dword [ebp - 0x20]
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x1c]
add esp, 0xc
mov ecx, dword [ebp - 0x20]
test edi, edi
lea eax, [ecx + edi*2]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0x10], eax
jle 0x404660
cmp esi, edi
jle 0x404660
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x94]
lea eax, [eax + ecx*2]
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], ecx
nop
movzx ecx, word [ebx]
mov edi, ebx
mov ebx, dword [ebp - 0x14]
movzx eax, cx
cmp ebx, eax
jbe 0x4055f4
movzx ecx, word [edx]
movzx esi, cx
cmp ebx, esi
jbe 0x4055fb
mov ebx, dword [ebp - 0x18]
lea eax, [eax + eax*2]
lea ecx, [esi + esi*2]
mov eax, dword [ebx + eax*4 + 8]
cmp eax, dword [ebx + ecx*4 + 8]
jbe 0x404610
mov ecx, edx
lea eax, [edi + 2]
mov edx, edi
jmp 0x40461b
lea ecx, [edx + 2]
mov eax, edi
mov dword [ebp - 0xd0], ecx
mov ebx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x10]
lea esi, [ebx + 2]
mov dword [ebp - 0xc8], esi
movzx edx, word [edx]
mov word [ebx], dx
jae 0x40463e
cmp eax, dword [ebp - 0x28]
mov edx, ecx
mov ebx, eax
mov dword [ebp - 0x1c], esi
jb 0x4045d0
mov edx, esi
jmp 0x404663
mov ecx, dword [ebp - 0x20]
mov edx, ebx
jmp 0x404663
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
sub eax, ecx
push eax
push ecx
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x48]
cmp edx, ecx
jae 0x4056bc
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp - 0x70]
sub ecx, edx
mov dword [esi + edx*8], eax
mov eax, dword [ebp - 0x44]
add edi, dword [ebp - 0x4c]
lea eax, [esi + eax*8]
mov dword [esi + edx*8 + 4], edi
mov edx, ecx
lea ecx, [eax + 8]
lea edx, [edx*8 - 0x10]
push edx
push ecx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
cmp ebx, 1
mov ecx, ebx
mov dword [ebp - 0x60], ebx
ja 0x4043b0
jmp 0x404024
mov esi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
cmp ecx, eax
mov ecx, dword [ebp - 0x24]
jae 0x404427
jmp 0x40442a
mov ebx, dword [ebp - 0x18]
xor edi, edi
cmp ecx, dword [ebp - 0x64]
je 0x404379
jmp 0x404200
mov ecx, 2
jmp 0x404029
mov esi, dword [ebp - 0x34]
mov ecx, 3
jmp 0x404029
mov ecx, dword [ebp - 0x24]
jmp 0x404029
test edi, edi
js 0x40585b
mov eax, dword [0x56bbf8]
mov esi, edi
and esi, 0xfffffffe
mov eax, dword [eax]
test eax, eax
jne 0x40473e
call sub.kernel32.dll_GetProcessHeap
test eax, eax
je 0x40583d
mov ecx, dword [0x56bbf8]
mov dword [ecx], eax
push esi
push 0
push eax
call sub.kernel32.dll_HeapAlloc
test eax, eax
mov dword [ebp - 0x20], eax
je 0x40583d
mov esi, dword [ebp - 0x24]
mov eax, edi
pxor xmm0, xmm0
xor ebx, ebx
mov ecx, 4
mov dword [ebp - 0xd0], 4
shr eax, 1
movq qword [ebp - 0xcc], xmm0
mov dword [ebp - 0x6c], eax
lea eax, [esi - 2]
mov dword [ebp - 0x4c], eax
lea eax, [esi - 0x10]
mov dword [ebp - 0x50], eax
lea eax, [esi + 4]
mov dword [ebp - 0x3c], eax
mov eax, edi
jmp 0x4047a0
mov ebx, 1
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x404d86
cmp eax, 1
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x34], ecx
je 0x4048b0
movzx edx, word [esi + eax*2 - 4]
mov edi, eax
mov dword [ebp - 0x18], eax
cmp word [esi + eax*2 - 2], dx
jae 0x4048e0
lea eax, [edi + edi]
lea edi, [esi + edi*2]
mov esi, 2
mov dword [ebp - 0x1c], eax
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [ebp - 0x18]
mov ebx, esi
mov ecx, edi
sub eax, esi
mov dword [ebp - 0x14], eax
je 0x4047ff
movzx eax, word [ecx - 6]
lea esi, [ebx + 1]
lea edi, [ecx - 2]
cmp dx, ax
mov edx, eax
jb 0x4047e0
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
cmp edi, edx
jb 0x4057c8
cmp edi, dword [ebp - 0x40]
mov esi, dword [ebp - 0x24]
ja 0x4057be
cmp ebx, 2
jb 0x404906
mov eax, ebx
xor esi, esi
shr eax, 1
cmp ebx, 0x10
mov dword [ebp - 0x10], eax
jb 0x40492c
mov esi, eax
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x1c]
and esi, 0xfffffff8
lea edi, [eax + edx]
mov eax, dword [ebp - 0x10]
xor edx, edx
and eax, 0xfffffff8
nop word [eax + eax]
movdqu xmm1, xmmword [edi]
movdqu xmm0, xmmword [ecx + edx*2 - 4]
pshufd xmm1, xmm1, 0x4e
pshufd xmm0, xmm0, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm1, xmm1, 0x1b
pshufhw xmm0, xmm0, 0x1b
movdqu xmmword [ecx + edx*2 - 4], xmm1
add edx, 8
movdqu xmmword [edi], xmm0
add edi, 0xfffffff0
cmp eax, edx
jne 0x404850
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 0x18]
cmp eax, esi
jne 0x40492c
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x14]
test edx, edx
mov dword [ebp - 0x14], edx
jne 0x40496d
jmp 0x404a90
mov ebx, 1
mov dword [ebp - 0x14], 0
mov edx, dword [ebp - 0x30]
cmp edx, dword [ebp - 0xcc]
je 0x404a9f
mov ecx, dword [ebp - 0x34]
jmp 0x404ab6
lea eax, [edi - 3]
mov ebx, 1
nop dword [eax + eax]
cmp eax, 0xffffffff
je 0x404912
movzx ecx, word [esi + eax*2]
inc ebx
dec eax
cmp dx, cx
mov edx, ecx
jae 0x4048f0
mov edx, edi
sub edx, ebx
test edx, edx
mov dword [ebp - 0x14], edx
jne 0x40496d
jmp 0x404a90
mov dword [ebp - 0x14], 0
mov ebx, edi
mov edx, dword [ebp - 0x30]
cmp edx, dword [ebp - 0xcc]
je 0x404a9f
jmp 0x4048cb
mov edi, dword [ebp - 0x1c]
sub edi, esi
sub edi, esi
add edi, dword [ebp - 0x4c]
nop word cs:[eax + eax]
movzx edx, word [edi]
movzx eax, word [ecx + esi*2 - 4]
mov word [ecx + esi*2 - 4], dx
inc esi
mov word [edi], ax
add edi, 0xfffffffe
cmp dword [ebp - 0x10], esi
jne 0x404940
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
test edx, edx
mov dword [ebp - 0x14], edx
je 0x404a90
cmp ebx, 9
ja 0x404a90
cmp edi, dword [ebp - 0x40]
ja 0x4057ea
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x4c]
mov esi, edx
lea ecx, [ecx + edx*2]
mov edx, edi
lea eax, [eax + edi*2]
sub edx, esi
mov dword [ebp - 0x28], eax
add edx, 0xfffffffc
nop word [eax + eax]
mov esi, dword [ebp - 0x14]
mov ebx, edi
dec esi
sub ebx, esi
mov eax, esi
mov dword [ebp - 0x14], esi
jb 0x405755
cmp ebx, 2
jb 0x404a67
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x14]
lea edi, [eax + esi*2]
movzx eax, word [edi]
movzx esi, word [edi + 2]
cmp si, ax
jae 0x404a67
mov word [ebp - 0x10], ax
lea eax, [edi + 2]
cmp ebx, 3
mov word [edi], si
jb 0x404a60
movzx esi, word [edi + 4]
cmp si, word [ebp - 0x10]
jae 0x404a60
mov word [eax], si
mov eax, dword [ebp - 0x28]
cmp ebx, 3
je 0x404a60
movzx esi, word [edi + 6]
lea eax, [edi + 4]
cmp si, word [ebp - 0x10]
jae 0x404a60
mov word [eax], si
mov eax, dword [ebp - 0x28]
cmp ebx, 4
je 0x404a60
movzx eax, word [edi + 8]
mov esi, edx
cmp ax, word [ebp - 0x10]
mov word [ebp - 0x1c], ax
mov eax, ecx
jae 0x404a4f
nop word cs:[eax + eax]
nop dword [eax]
movzx edi, word [ebp - 0x1c]
sub esi, 1
mov word [eax], di
jb 0x404a56
movzx edi, word [eax + 4]
add eax, 2
cmp di, word [ebp - 0x10]
mov word [ebp - 0x1c], di
jb 0x404a30
jmp 0x404a60
add edi, 6
mov eax, edi
jmp 0x404a60
mov eax, dword [ebp - 0x28]
nop dword [eax]
movzx esi, word [ebp - 0x10]
mov word [eax], si
cmp dword [ebp - 0x14], 0
je 0x404d50
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x18]
add ecx, 0xfffffffe
inc edx
cmp ebx, 0xa
jb 0x4049a0
nop word cs:[eax + eax]
nop
mov edx, dword [ebp - 0x30]
cmp edx, dword [ebp - 0xcc]
jne 0x4048cb
lea ecx, [ebp - 0xd0]
call fcn.00403590
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], ecx
mov dword [ecx + edx*8], eax
mov dword [ecx + edx*8 + 4], ebx
inc edx
cmp edx, 2
mov ebx, edx
mov dword [ebp - 0xc8], edx
jb 0x404795
nop word cs:[eax + eax]
nop
cmp dword [ecx + ebx*8 - 8], 0
lea edi, [ebx - 1]
mov dword [ebp - 0x38], edi
je 0x404b40
mov edx, dword [ecx + ebx*8 - 0xc]
mov eax, dword [ecx + edi*8 + 4]
cmp edx, eax
jbe 0x404b40
cmp ebx, 3
jb 0x404d67
mov ecx, dword [ecx + ebx*8 - 0x14]
lea esi, [ebx - 3]
mov dword [ebp - 0x2c], esi
lea esi, [eax + edx]
cmp ecx, esi
jbe 0x404d3a
mov esi, dword [ebp - 0x24]
cmp ebx, 4
jb 0x404d71
mov edi, dword [ebp - 0x34]
add edx, ecx
cmp dword [edi + ebx*8 - 0x1c], edx
mov edx, dword [ebp - 0x2c]
jbe 0x404b50
jmp 0x404d7e
cmp ebx, 3
jb 0x404b57
mov eax, dword [ecx + edi*8 + 4]
mov ecx, dword [ecx + ebx*8 - 0x14]
lea edx, [ebx - 3]
cmp ecx, eax
mov ecx, dword [ebp - 0x34]
jb 0x404b5a
lea edx, [ebx - 2]
mov edi, esi
lea esi, [edx + 1]
cmp esi, ebx
mov eax, esi
mov dword [ebp - 0x48], esi
jae 0x40562e
mov dword [ebp - 0x30], ebx
mov eax, ecx
mov ebx, dword [ecx + edx*8 + 4]
mov eax, dword [ecx + edx*8]
mov esi, dword [ecx + edx*8 + 8]
add eax, ebx
mov dword [ebp - 0x44], ebx
mov ebx, eax
mov dword [ebp - 0x18], eax
sub ebx, esi
jb 0x405732
cmp eax, dword [ebp - 0x40]
ja 0x40573c
mov eax, dword [ecx + edx*8 + 0xc]
mov dword [ebp - 0x2c], edx
mov edx, ebx
lea ecx, [edi + esi*2]
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x10], ecx
sub edx, eax
lea esi, [ecx + eax*2]
mov dword [ebp - 0x28], eax
cmp edx, eax
jae 0x404c40
lea eax, [edx + edx]
push eax
push esi
mov edi, dword [ebp - 0x20]
push edi
mov ebx, edx
call sub.msvcrt.dll_memcpy
mov ecx, ebx
add esp, 0xc
lea eax, [edi + ebx*2]
cmp dword [ebp - 0x28], 0
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x1c], eax
jle 0x404cd0
test ecx, ecx
jle 0x404cd0
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x18]
lea ecx, [eax + ecx*2]
mov eax, dword [ebp - 0x1c]
nop word cs:[eax + eax]
nop
mov edx, eax
mov edi, esi
add eax, 0xfffffffe
movzx esi, word [edx - 2]
movzx ebx, word [edi - 2]
cmp si, bx
mov dword [ebp - 0x1c], esi
lea esi, [edi - 2]
cmovae esi, edi
cmova ebx, dword [ebp - 0x1c]
cmovb eax, edx
cmp esi, dword [ebp - 0x10]
mov word [ecx], bx
jbe 0x404c32
add ecx, 0xfffffffe
cmp eax, dword [ebp - 0x20]
ja 0x404c00
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x1c], eax
jmp 0x404cd3
mov eax, dword [ebp - 0x28]
add eax, eax
push eax
push ecx
mov edi, dword [ebp - 0x20]
push edi
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x28]
add esp, 0xc
lea ecx, [edi + eax*2]
test eax, eax
mov dword [ebp - 0x1c], ecx
jle 0x404cc0
cmp ebx, eax
jle 0x404cc0
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
nop word cs:[eax + eax]
nop dword [eax]
movzx edi, word [esi]
movzx edx, word [ecx]
xor ebx, ebx
xor eax, eax
cmp di, dx
cmovb edx, edi
mov edi, dword [ebp - 0x10]
setae al
lea ecx, [ecx + eax*2]
setb al
mov word [edi], dx
add edi, 2
cmp ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edi
jae 0x404cc3
mov bl, al
lea esi, [esi + ebx*2]
cmp esi, dword [ebp - 0x18]
jb 0x404c80
jmp 0x404cc3
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x10]
jmp 0x404cd3
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
sub eax, ecx
push eax
push ecx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x24]
cmp ecx, ebx
jae 0x405638
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x44]
sub ebx, ecx
mov dword [edi + ecx*8], eax
mov eax, dword [ebp - 0x48]
add edx, dword [ebp - 0x28]
lea eax, [edi + eax*8]
mov dword [edi + ecx*8 + 4], edx
lea edx, [ebx*8 - 0x10]
lea ecx, [eax + 8]
push edx
push ecx
push eax
call sub.msvcrt.dll_memmove
mov ecx, edi
add esp, 0xc
mov ebx, dword [ebp - 0x38]
cmp ebx, 1
mov dword [ebp - 0xc8], ebx
ja 0x404ae0
jmp 0x404790
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x2c]
cmp ecx, eax
mov ecx, dword [ebp - 0x34]
jae 0x404b57
jmp 0x404b5a
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x30]
cmp edx, dword [ebp - 0xcc]
je 0x404a9f
jmp 0x4048cb
mov ebx, 2
jmp 0x404795
mov ecx, dword [ebp - 0x34]
mov ebx, 3
jmp 0x404795
mov ecx, dword [ebp - 0x34]
jmp 0x404795
cmp dword [ebp - 0xcc], 0
je 0x404d9e
push ecx
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
cmp dword [ebp - 0x40], 2
jb 0x404db5
mov eax, dword [0x56bbf8]
push dword [ebp - 0x20]
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
cmp dword [ebp - 0x8c], 0
je 0x405800
mov eax, dword [ebp - 0x7c]
cmp eax, 1
mov esi, eax
je 0x404de5
test eax, eax
je 0x40587d
lea ecx, [eax - 1]
mov esi, 1
nop dword [eax]
add esi, esi
dec ecx
jne 0x404de0
mov dword [ebp - 0x1c], eax
mov eax, dword [0x56bbf8]
mov eax, dword [eax]
test eax, eax
jne 0x404e08
call sub.kernel32.dll_GetProcessHeap
test eax, eax
je 0x4057d6
mov ecx, dword [0x56bbf8]
mov dword [ecx], eax
push 0x300
push 0
push eax
call sub.kernel32.dll_HeapAlloc
test eax, eax
je 0x4057d6
pxor xmm0, xmm0
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], 0x40
mov dword [ebp - 0xd4], 0
mov dword [eax], 4
movq qword [eax + 4], xmm0
mov dword [eax + 0xc], 4
movq qword [eax + 0x10], xmm0
mov dword [eax + 0x18], 4
movq qword [eax + 0x1c], xmm0
mov dword [eax + 0x24], 4
movq qword [eax + 0x28], xmm0
mov dword [eax + 0x30], 4
movq qword [eax + 0x34], xmm0
mov dword [eax + 0x3c], 4
movq qword [eax + 0x40], xmm0
mov dword [eax + 0x48], 4
movq qword [eax + 0x4c], xmm0
mov dword [eax + 0x54], 4
movq qword [eax + 0x58], xmm0
mov dword [eax + 0x60], 4
movq qword [eax + 0x64], xmm0
mov dword [eax + 0x6c], 4
movq qword [eax + 0x70], xmm0
mov dword [eax + 0x78], 4
movq qword [eax + 0x7c], xmm0
mov dword [eax + 0x84], 4
movq qword [eax + 0x88], xmm0
mov dword [eax + 0x90], 4
movq qword [eax + 0x94], xmm0
mov dword [eax + 0x9c], 4
movq qword [eax + 0xa0], xmm0
mov dword [eax + 0xa8], 4
movq qword [eax + 0xac], xmm0
mov dword [eax + 0xb4], 4
movq qword [eax + 0xb8], xmm0
mov dword [eax + 0xc0], 4
movq qword [eax + 0xc4], xmm0
mov dword [eax + 0xcc], 4
movq qword [eax + 0xd0], xmm0
mov dword [eax + 0xd8], 4
movq qword [eax + 0xdc], xmm0
mov dword [eax + 0xe4], 4
movq qword [eax + 0xe8], xmm0
mov dword [eax + 0xf0], 4
movq qword [eax + 0xf4], xmm0
mov dword [eax + 0xfc], 4
movq qword [eax + 0x100], xmm0
mov dword [eax + 0x108], 4
movq qword [eax + 0x10c], xmm0
mov dword [eax + 0x114], 4
movq qword [eax + 0x118], xmm0
mov dword [eax + 0x120], 4
movq qword [eax + 0x124], xmm0
mov dword [eax + 0x12c], 4
movq qword [eax + 0x130], xmm0
mov dword [eax + 0x138], 4
movq qword [eax + 0x13c], xmm0
mov dword [eax + 0x144], 4
movq qword [eax + 0x148], xmm0
mov dword [eax + 0x150], 4
movq qword [eax + 0x154], xmm0
mov dword [eax + 0x15c], 4
movq qword [eax + 0x160], xmm0
mov dword [eax + 0x168], 4
movq qword [eax + 0x16c], xmm0
mov dword [eax + 0x174], 4
movq qword [eax + 0x178], xmm0
mov dword [eax + 0x180], 4
movq qword [eax + 0x184], xmm0
mov dword [eax + 0x18c], 4
movq qword [eax + 0x190], xmm0
mov dword [eax + 0x198], 4
movq qword [eax + 0x19c], xmm0
mov dword [eax + 0x1a4], 4
movq qword [eax + 0x1a8], xmm0
mov dword [eax + 0x1b0], 4
movq qword [eax + 0x1b4], xmm0
mov dword [eax + 0x1bc], 4
movq qword [eax + 0x1c0], xmm0
mov dword [eax + 0x1c8], 4
movq qword [eax + 0x1cc], xmm0
mov dword [eax + 0x1d4], 4
movq qword [eax + 0x1d8], xmm0
mov dword [eax + 0x1e0], 4
movq qword [eax + 0x1e4], xmm0
mov dword [eax + 0x1ec], 4
movq qword [eax + 0x1f0], xmm0
mov dword [eax + 0x1f8], 4
movq qword [eax + 0x1fc], xmm0
mov dword [eax + 0x204], 4
movq qword [eax + 0x208], xmm0
mov dword [eax + 0x210], 4
movq qword [eax + 0x214], xmm0
mov dword [eax + 0x21c], 4
movq qword [eax + 0x220], xmm0
mov dword [eax + 0x228], 4
movq qword [eax + 0x22c], xmm0
mov dword [eax + 0x234], 4
movq qword [eax + 0x238], xmm0
mov dword [eax + 0x240], 4
movq qword [eax + 0x244], xmm0
mov dword [eax + 0x24c], 4
movq qword [eax + 0x250], xmm0
mov dword [eax + 0x258], 4
movq qword [eax + 0x25c], xmm0
mov dword [eax + 0x264], 4
movq qword [eax + 0x268], xmm0
mov dword [eax + 0x270], 4
movq qword [eax + 0x274], xmm0
mov dword [eax + 0x27c], 4
movq qword [eax + 0x280], xmm0
mov dword [eax + 0x288], 4
movq qword [eax + 0x28c], xmm0
mov dword [eax + 0x294], 4
movq qword [eax + 0x298], xmm0
mov dword [eax + 0x2a0], 4
movq qword [eax + 0x2a4], xmm0
mov dword [eax + 0x2ac], 4
movq qword [eax + 0x2b0], xmm0
mov dword [eax + 0x2b8], 4
movq qword [eax + 0x2bc], xmm0
mov dword [eax + 0x2c4], 4
movq qword [eax + 0x2c8], xmm0
mov dword [eax + 0x2d0], 4
movq qword [eax + 0x2d4], xmm0
mov dword [eax + 0x2dc], 4
movq qword [eax + 0x2e0], xmm0
mov dword [eax + 0x2e8], 4
movq qword [eax + 0x2ec], xmm0
mov dword [eax + 0x2f4], 4
movq qword [eax + 0x2f8], xmm0
mov dword [ebp - 0xd4], 0x40
mov eax, dword [ebp - 0x74]
mov ebx, dword [ebp - 0x8c]
lea ecx, [eax + 1]
mov dword [ebp - 0xe8], ebx
movzx ecx, cx
cmp ebx, ecx
mov dword [ebp - 0xe4], ecx
jne 0x405811
movq xmm0, qword [ebp - 0xdc]
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x1c]
test ebx, ebx
mov dword [ebp - 0x20], ebx
movq qword [ebp - 0x68], xmm0
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], esi
mov word [ebp - 0x54], ax
je 0x40539e
mov eax, dword [ebp - 0x94]
mov esi, dword [ebp - 0x80]
mov edi, dword [ebp - 0x60]
xor ecx, ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x24], eax
jmp 0x405321
mov eax, dword [esi]
movzx ecx, word [ebp - 0x10]
mov dword [eax + edx*8], ebx
mov word [eax + edx*8 + 4], cx
inc edx
mov ebx, dword [ebp - 0x20]
mov ecx, edi
mov dword [esi + 8], edx
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x2c]
cmp edi, ebx
je 0x40539e
cmp ecx, esi
je 0x405663
mov eax, dword [ebp - 0x18]
mov edi, ecx
movzx eax, word [eax + ecx*2]
movzx ecx, ax
cmp ebx, ecx
jbe 0x40568d
mov ebx, dword [ebp - 0x28]
lea ecx, [ecx + ecx*2]
mov word [ebp - 0x10], ax
mov eax, dword [ebx + ecx*4 + 8]
cmp edx, eax
ja 0x40576e
lea eax, [ebx + ecx*4]
inc edi
xor ebx, ebx
mov ecx, edx
mov eax, dword [eax]
nop dword [eax]
movzx edx, byte [eax]
inc eax
dec ecx
lea ebx, [edx + ebx*2]
jne 0x405360
mov ecx, ebx
and ecx, 0x3f
cmp ecx, dword [ebp - 0x14]
jae 0x405694
lea eax, [ecx + ecx*2]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + eax*4 + 8]
lea esi, [ecx + eax*4]
cmp edx, dword [ecx + eax*4 + 4]
jne 0x405300
mov ecx, esi
call fcn.00403590
mov edx, dword [esi + 8]
jmp 0x405300
mov esi, dword [ebp + 0xc]
movzx ecx, byte [esi + 0x25]
test cl, 1
jne 0x4053f4
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x68]
mov byte [eax + 0x44], 2
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x405524
shl eax, 2
lea edi, [esi + 4]
lea ebx, [eax + eax*2]
jmp 0x4053dc
add edi, 0xc
add ebx, 0xfffffff4
je 0x405524
cmp dword [edi], 0
je 0x4053d0
push dword [edi - 4]
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
jmp 0x4053d0
xor eax, eax
cmp cl, 2
movzx edx, byte [esi + 0x24]
movzx ecx, byte [esi + 0x26]
movsd xmm0, qword [ebp - 0x7c]
movsd xmm1, qword [ebp - 0x8c]
sete al
shl eax, 8
or eax, edx
mov edx, ecx
movsd qword [ebp - 0xb8], xmm0
movsd xmm0, qword [ebp - 0x84]
movsd qword [ebp - 0xc8], xmm1
movsd xmm1, qword [ebp - 0x60]
and edx, 1
shl edx, 0x10
cmp cl, 2
mov ecx, 0x20000
cmovne ecx, edx
movzx edx, byte [esi + 0x27]
movsd qword [ebp - 0xc0], xmm0
movsd xmm0, qword [ebp - 0x94]
mov esi, edx
and esi, 1
movsd qword [ebp - 0xd0], xmm0
movsd xmm0, qword [ebp - 0x68]
shl esi, 0x18
cmp dl, 2
mov edx, 0x2000000
cmovne edx, esi
or ecx, eax
lea eax, [edx + ecx + 0x100]
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp + 8]
mov dword [ebp - 0xb0], ecx
movsd qword [ebp - 0xac], xmm0
movsd xmm0, qword [ebp - 0x58]
movsd qword [ebp - 0xa4], xmm1
movsd qword [ebp - 0x9c], xmm0
movsd xmm2, qword [ebp - 0xa8]
movsd xmm1, qword [ebp - 0xb0]
mov ecx, dword [ebp - 0x98]
movq xmm0, qword [ebp - 0xa0]
movsd qword [edx + 0x28], xmm2
movsd qword [edx + 0x20], xmm1
movsd xmm2, qword [ebp - 0xb8]
movsd xmm1, qword [ebp - 0xc0]
mov dword [edx + 0x38], ecx
movq qword [edx + 0x30], xmm0
movsd qword [edx + 0x18], xmm2
movsd qword [edx + 0x10], xmm1
movsd xmm2, qword [ebp - 0xd0]
movq xmm1, qword [ebp - 0xc8]
movq qword [edx + 8], xmm1
movsd qword [edx], xmm2
mov dword [edx + 0x3c], 0
mov dword [edx + 0x40], eax
mov eax, edx
mov byte [edx + 0x44], 1
jmp 0x4055be
cmp dword [ebp - 0x64], 0
je 0x405539
push esi
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x94]
mov eax, dword [ebp + 8]
test ecx, ecx
je 0x405583
shl ecx, 2
lea edi, [esi + 4]
lea ebx, [ecx + ecx*2]
jmp 0x405568
add edi, 0xc
add ebx, 0xfffffff4
je 0x405583
cmp dword [edi], 0
je 0x405560
push dword [edi - 4]
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
mov eax, dword [ebp + 8]
jmp 0x405560
cmp dword [ebp - 0x90], 0
je 0x40559e
push esi
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
mov eax, dword [ebp + 8]
cmp dword [ebp - 0x84], 0
je 0x4055be
push dword [ebp - 0x88]
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
mov eax, dword [ebp + 8]
add esp, 0xdc
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [ebp - 0x64], 0
je 0x4055de
push esi
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
cmp dword [ebp - 0x3c], 2
jae 0x404da4
jmp 0x404db5
mov esi, 0x5045a8
jmp 0x405607
mov esi, 0x5045a8
jmp 0x405619
mov esi, 0x5045b8
jmp 0x405619
mov esi, 0x5045b8
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xcc], edx
movzx eax, cx
push esi
push dword [ebp - 0x14]
push eax
call fcn.00414b90
add esp, 0xc
jmp 0x405897
mov ecx, dword [ebp - 0x48]
mov eax, 0x5042a0
jmp 0x40563d
mov eax, 0x5042c0
push eax
push ebx
push ecx
call fcn.00414b90
add esp, 0xc
jmp 0x405897
push 0x5045a8
push dword [ebp - 0x1c]
push edx
call fcn.00414b90
add esp, 0xc
jmp 0x405897
mov eax, 0x5045e8
mov ebx, esi
jmp 0x40569e
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
lea eax, [ecx + eax*2]
lea ebx, [ebx + eax - 2]
push 0x5045a8
push edi
push edx
call fcn.00414b90
add esp, 0xc
jmp 0x405897
mov eax, 0x5045d8
jmp 0x40569c
mov ebx, dword [ebp - 0x14]
mov eax, 0x5046d4
mov esi, ecx
push eax
push ebx
push esi
call fcn.00414b90
add esp, 0xc
jmp 0x405897
mov edx, dword [ebp - 0x44]
mov eax, ecx
mov ecx, 0x5042a0
mov edi, eax
jmp 0x4056f0
mov eax, ecx
mov ecx, 0x5042c0
mov edi, eax
jmp 0x4056f0
mov edx, ecx
mov ecx, 0x5045a8
jmp 0x4056f0
mov edx, ecx
mov ecx, 0x5045b8
jmp 0x4056f0
mov ecx, 0x5045a8
jmp 0x4056ea
mov eax, dword [ebp - 0x44]
mov ecx, 0x5045b8
mov esi, eax
mov edi, dword [ebp - 0x1c]
movzx edx, si
push ecx
push edi
push edx
call fcn.00414b90
add esp, 0xc
jmp 0x405897
mov eax, 0x5045a8
jmp 0x405711
mov ecx, dword [ebp - 0x14]
mov eax, 0x5045b8
mov ebx, ecx
movzx ecx, bx
push eax
push edi
push ecx
call fcn.00414b90
add esp, 0xc
jmp 0x405897
mov ecx, 0x5045a8
jmp 0x4056ed
mov ecx, 0x5045b8
jmp 0x4056ed
mov eax, 0x5042b0
mov dword [ebp - 0x14], esi
jmp 0x40575a
mov eax, 0x5042b0
push eax
push dword [ebp - 0x40]
push dword [ebp - 0x18]
call fcn.00417f20
add esp, 0xc
jmp 0x405897
mov eax, 0x504290
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x14]
call fcn.00417fa0
add esp, 0xc
jmp 0x405897
push 0x5046c4
push eax
push edx
call fcn.00417f20
add esp, 0xc
jmp 0x405897
mov eax, 0x5042b0
mov dword [ebp - 0x2c], ecx
jmp 0x4057aa
mov eax, 0x5042b0
push eax
push dword [ebp - 0x3c]
push dword [ebp - 0x18]
call fcn.00417f20
add esp, 0xc
jmp 0x405897
mov eax, 0x504290
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x2c]
call fcn.00417fa0
add esp, 0xc
jmp 0x405897
mov eax, 0x504280
jmp 0x405741
mov eax, edi
sub eax, ebx
mov dword [ebp - 0x14], eax
mov eax, 0x504280
jmp 0x40575a
push 4
push 0x300
call fcn.004085f0
add esp, 8
jmp 0x405897
dec edx
mov eax, 0x504290
cmp edi, edx
mov dword [ebp - 0x14], edx
jae 0x405741
jmp 0x40575a
mov eax, 0x504684
mov ecx, 0x25
mov edx, str.assertion_failed:_patterns.len_____1_usr_local_cargo_registry_src_github.com_1ecc6299db9ec823_aho_corasick_0.7.18_src_packed_rabinkarp.rs
jmp 0x40588c
mov dword [ebp - 0xd0], 0
lea eax, [ebp - 0xd0]
lea edx, [ebp - 0xe8]
lea ecx, [ebp - 0xe4]
push 0x5045c8
push eax
call fcn.00403310
add esp, 8
jmp 0x405897
push 2
push esi
call fcn.004085f0
add esp, 8
jmp 0x405897
mov eax, 0x504598
mov ecx, 0x28
mov edx, str.internal_error:_entered_unreachable_code_usr_local_cargo_registry_src_github.com_1ecc6299db9ec823_aho_corasick_0.7.18_src_ahocorasick.rs
jmp 0x40588c
call fcn.004085b0
jmp 0x405897
mov eax, edx
sub eax, ebx
mov dword [ebp - 0x2c], eax
mov eax, 0x504280
jmp 0x4057aa
mov eax, 0x504280
jmp 0x405791
mov eax, 0x5046b4
mov ecx, 0x1f
mov edx, 0x504694
push eax
push ecx
push edx
call fcn.00414ad0
add esp, 0xc
ud2
dec edi
mov eax, 0x504290
cmp edx, edi
mov dword [ebp - 0x2c], edi
jae 0x405791
jmp 0x4057aa