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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xb0
cmp byte [edx + 0x29], 0
jne 0x412f90
mov edi, dword [edx + 8]
test edi, edi
je 0x412f90
cmp edi, 0xaaaaaaa
ja 0x414704
lea eax, [edi*4]
mov dword [esp + 0x34], ecx
lea ebx, [eax + eax*2]
test ebx, ebx
js 0x414704
mov eax, dword [edx + 4]
mov dword [esp + 0x3c], edx
xor ecx, ecx
mov edx, ebx
xor esi, esi
mov dword [esp], eax
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
mov dword [esp + 0x14], eax
je 0x414757
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], ebx
jmp 0x412f4f
mov ebp, 1
add dword [esp], 0xc
dec edi
push ebx
push ecx
push ebp
call fcn.007bd9b0
add esp, 0xc
mov eax, dword [esp + 0x14]
mov dword [eax + esi], ebx
mov dword [eax + esi + 4], ebp
mov dword [eax + esi + 8], ebx
mov ebx, dword [esp + 0x20]
add esi, 0xc
test edi, edi
je 0x412f9b
cmp ebx, esi
je 0x412f9b
mov eax, dword [esp]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 4]
test ebx, ebx
je 0x412f20
mov dword [esp + 4], ecx
js 0x414704
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, ebx
call fcn.0071ee80
mov ecx, dword [esp + 4]
mov ebp, eax
test eax, eax
jne 0x412f25
mov ecx, 1
mov edx, ebx
call fcn.007c1490
mov dword [ecx], 0x80000000
jmp 0x414634
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
mov dword [esp + 0xc], eax
je 0x412fe7
cmp eax, 0x1fffffff
ja 0x414704
lea edi, [eax*4]
test edi, edi
js 0x414704
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, edi
call fcn.0071ee80
test eax, eax
jne 0x412fee
mov ecx, 4
mov edx, edi
call fcn.007c1490
mov eax, 4
xor edi, edi
mov dword [esp + 0x1c], eax
push edi
push esi
push eax
call fcn.007bd9b0
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], esi
movq xmm0, qword [eax + 0x18]
movzx eax, byte [eax + 0x24]
test al, al
movq qword [esp + 0xa4], xmm0
mov byte [esp + 0xac], al
je 0x413087
lea eax, [esp + 0x8c]
cmp esi, 0x15
mov dword [esp + 0x2c], eax
jae 0x4130aa
cmp esi, 1
jbe 0x413cb3
lea eax, [esp + 0x2c]
mov edx, esi
push eax
push 1
call fcn.004148a0
add esp, 8
jmp 0x413cb3
cmp esi, 0x15
jae 0x41370a
cmp esi, 1
jbe 0x413cb3
mov edx, esi
push 1
call fcn.004147f0
add esp, 4
jmp 0x413cb3
movzx eax, byte [0x94bfc5]
lea edx, [esi + esi]
xor ecx, ecx
and edx, 0x7ffffffc
call fcn.0071ee80
test eax, eax
mov dword [esp + 0x18], eax
je 0x4147bf
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0x80
call fcn.0071ee80
test eax, eax
je 0x4147c9
mov edi, eax
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov dword [esp + 0x7c], 0x10
lea ecx, [eax - 0x10]
mov dword [esp + 0x88], ecx
lea ecx, [eax + 0x10]
mov dword [esp + 0x84], ecx
lea ecx, [eax - 4]
mov dword [esp + 0x80], ecx
xor ecx, ecx
jmp 0x413135
mov ecx, 1
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
cmp ebx, esi
jae 0x413c94
sub esi, ebx
lea ebp, [eax + ebx*4]
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov dword [esp + 0x40], edi
cmp esi, 2
mov dword [esp], ebp
jae 0x4131c0
mov edi, esi
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 8]
lea edx, [edi + ebx]
mov ebp, edx
sub ebp, ebx
jb 0x414709
cmp edx, esi
ja 0x414709
jae 0x4132e0
cmp edi, 0xa
jae 0x4132e0
lea ebp, [ebx + 0xa]
cmp ebp, esi
cmovae ebp, esi
mov dword [esp + 0x38], ebp
sub ebp, ebx
jb 0x414763
mov ecx, dword [esp]
cmp edi, 1
lea eax, [esp + 0x2c]
mov edx, ebp
adc edi, 0
push eax
push edi
call fcn.004148a0
add esp, 8
mov ecx, dword [esp + 8]
cmp ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x40]
je 0x4132ee
jmp 0x413341
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 8]
cmp edx, eax
jbe 0x414665
mov ebx, dword [ebp]
cmp edx, ebx
jbe 0x414671
mov ecx, dword [ecx + 4]
lea edi, [eax + eax*2]
mov ebp, dword [ecx + edi*4 + 8]
lea edi, [ebx + ebx*2]
cmp ebp, dword [ecx + edi*4 + 8]
jbe 0x413650
mov edi, 2
cmp esi, 3
jb 0x41322c
nop
mov ebx, dword [esp]
mov ebx, dword [ebx + edi*4]
cmp edx, ebx
jbe 0x414659
cmp edx, eax
jbe 0x413c7e
lea eax, [ebx + ebx*2]
mov eax, dword [ecx + eax*4 + 8]
cmp eax, ebp
jbe 0x41322c
inc edi
mov ebp, eax
mov eax, ebx
cmp esi, edi
jne 0x413200
mov edi, esi
mov ebx, dword [esp + 4]
mov edx, edi
add edx, ebx
jb 0x4147a5
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 8]
cmp edx, esi
ja 0x4147b1
cmp edi, 2
jb 0x41315b
mov eax, edi
mov ebp, edx
xor ecx, ecx
shr eax, 1
cmp edi, 0x10
jb 0x4136a3
mov edx, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
mov ecx, eax
and ecx, 0xfffffff8
lea esi, [esi + ebx*4]
lea edx, [edx + ebp*4]
mov ebx, ecx
nop
movdqu xmm0, xmmword [esi - 0x10]
movdqu xmm1, xmmword [esi]
movdqu xmm2, xmmword [edx - 0x10]
movdqu xmm3, xmmword [edx]
pshufd xmm3, xmm3, 0x1b
pshufd xmm2, xmm2, 0x1b
pshufd xmm0, xmm0, 0x1b
pshufd xmm1, xmm1, 0x1b
movdqu xmmword [esi - 0x10], xmm3
movdqu xmmword [esi], xmm2
movdqu xmmword [edx], xmm0
movdqu xmmword [edx - 0x10], xmm1
add edx, 0xffffffe0
add esi, 0x20
add ebx, 0xfffffff8
jne 0x413280
mov ebx, dword [esp + 4]
cmp eax, ecx
jne 0x4136a3
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, ebp
jmp 0x41315b
mov dword [esp + 0x38], edx
cmp ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x40]
jne 0x413341
movzx eax, byte [0x94bfc5]
mov edx, ecx
xor ecx, ecx
shl edx, 4
call fcn.0071ee80
test eax, eax
je 0x41471d
mov ecx, dword [esp + 8]
mov ebx, eax
lea eax, [ecx + ecx]
mov dword [esp + 0x7c], eax
lea eax, [ecx*8]
push eax
push edi
push ebx
call fcn.007bd9b0
add esp, 0xc
push edi
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, ebx
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 4]
mov dword [edi + ecx*8], ebp
mov dword [edi + ecx*8 + 4], ebx
inc ecx
mov dword [esp + 0x40], edi
cmp ecx, 2
jae 0x4133c3
jmp 0x413125
mov edi, dword [esp + 0x18]
mov ecx, esi
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x48]
sub edx, edi
lea eax, [ebx - 1]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
lea esi, [eax + ebp*8]
push edx
push edi
mov edi, eax
push ecx
call fcn.007bd9b0
add esp, 0xc
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x28]
mov dword [edi + ebp*8 + 8], eax
mov eax, dword [esp + 0x44]
mov dword [edi + ebp*8 + 0xc], eax
not ebp
lea eax, [esi + 8]
add ebp, ebx
shl ebp, 3
push ebp
push eax
push esi
call fcn.007bd9b0
add esp, 0xc
mov ecx, dword [esp]
mov esi, dword [esp + 0xc]
cmp ecx, 1
jbe 0x413120
mov dword [esp + 8], ecx
mov eax, dword [edi + ecx*8 - 8]
mov ecx, dword [esp + 8]
mov ecx, dword [edi + ecx*8 - 4]
add ecx, eax
cmp ecx, esi
mov ecx, dword [esp + 8]
je 0x413420
mov edx, dword [edi + ecx*8 - 0x10]
cmp edx, eax
jbe 0x413420
cmp ecx, 2
jbe 0x4136e4
lea ebp, [ecx - 3]
mov ebx, ecx
mov ecx, dword [edi + ecx*8 - 0x18]
lea esi, [edx + eax]
cmp ecx, esi
jbe 0x41342c
mov esi, dword [esp + 0xc]
cmp ebx, 3
jbe 0x4136f7
add edx, ecx
cmp dword [edi + ebx*8 - 0x20], edx
jbe 0x41342c
jmp 0x413701
cmp ecx, 3
jb 0x413434
lea ebp, [ecx - 3]
mov ecx, dword [edi + ecx*8 - 0x18]
cmp ecx, eax
mov ecx, dword [esp + 8]
jb 0x413437
lea ebp, [ecx - 2]
cmp ecx, ebp
jbe 0x41467d
lea eax, [ebp + 1]
cmp ecx, eax
mov eax, dword [esp + 0x1c]
jbe 0x414688
mov edx, dword [edi + ebp*8 + 8]
mov ebx, dword [edi + ebp*8 + 0xc]
mov ecx, dword [edi + ebp*8 + 4]
mov esi, edi
add ebx, edx
mov dword [esp + 0x30], edx
mov edi, ebx
sub edi, ecx
jb 0x4146da
cmp ebx, dword [esp + 0xc]
mov edx, ebx
mov dword [esp + 0x14], ebx
ja 0x4146e6
mov edx, dword [esi + ebp*8]
mov ebx, edi
mov dword [esp + 0x48], ebp
lea ebp, [eax + ecx*4]
mov dword [esp + 0x44], ecx
sub ebx, edx
lea esi, [ebp + edx*4]
mov dword [esp + 0x28], edx
cmp ebx, edx
jae 0x413560
lea eax, [ebx*4]
push eax
push esi
mov edi, dword [esp + 0x20]
push edi
call fcn.007bd9b0
add esp, 0xc
cmp dword [esp + 0x28], 0
lea edx, [edi + ebx*4]
jle 0x413360
test ebx, ebx
jle 0x413360
mov edi, dword [esp + 0x80]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
lea ebx, [edi + ecx*4]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov dword [esp], edx
mov ecx, dword [edx - 4]
mov edx, dword [eax + 8]
cmp edx, ecx
jbe 0x413c8a
mov eax, dword [esi - 4]
cmp edx, eax
jbe 0x413c7e
mov edx, dword [esp + 4]
lea ecx, [ecx + ecx*2]
lea eax, [eax + eax*2]
mov edx, dword [edx + 4]
mov edi, dword [edx + ecx*4 + 8]
mov eax, dword [edx + eax*4 + 8]
xor edx, edx
xor ecx, ecx
cmp edi, eax
mov dword [esp + 0x14], edi
seta cl
setbe dl
shl ecx, 2
shl edx, 2
sub esi, ecx
mov ecx, dword [esp]
sub ecx, edx
cmp dword [esp + 0x14], eax
mov eax, ecx
mov edx, ecx
cmova eax, esi
cmp esi, ebp
mov eax, dword [eax]
mov dword [ebx], eax
jbe 0x413360
add ebx, 0xfffffffc
cmp edx, dword [esp + 0x18]
ja 0x4134e0
jmp 0x413360
lea eax, [edx*4]
push eax
push ebp
mov ebx, dword [esp + 0x20]
push ebx
call fcn.007bd9b0
mov eax, dword [esp + 0x34]
add esp, 0xc
test eax, eax
lea edx, [ebx + eax*4]
jle 0x413640
cmp edi, eax
jle 0x413640
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
mov dword [esp], edx
lea eax, [eax + ecx*4]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x4c], eax
nop dword [eax + eax]
mov ecx, dword [esi]
mov edx, dword [ebx + 8]
cmp edx, ecx
jbe 0x413c8a
mov eax, dword [edi]
cmp edx, eax
jbe 0x413c7e
mov ebx, dword [ebx + 4]
lea edx, [ecx + ecx*2]
mov dword [esp + 0x50], esi
mov dword [esp + 4], ebp
mov dword [esp + 0x20], edi
mov edx, dword [ebx + edx*4 + 8]
mov dword [esp + 0x54], ebx
xor ebx, ebx
mov esi, dword [esp + 0x54]
mov dword [esp + 0x14], edx
lea edx, [eax + eax*2]
mov dword [esp + 0x24], edx
mov edi, dword [esp + 0x14]
xor edx, edx
mov ebp, dword [esp + 0x24]
cmp edi, dword [esi + ebp*4 + 8]
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 4]
setbe bl
cmova eax, ecx
lea edi, [edi + ebx*4]
mov dword [ebp], eax
seta al
add ebp, 4
cmp edi, dword [esp]
jae 0x413636
mov esi, dword [esp + 0x50]
mov dl, al
mov ebx, dword [esp + 0x10]
lea esi, [esi + edx*4]
cmp esi, dword [esp + 0x4c]
jb 0x4135b0
mov edx, dword [esp]
mov ecx, ebp
jmp 0x413366
mov edi, dword [esp + 0x18]
mov ecx, ebp
jmp 0x413366
mov ebx, dword [esp + 4]
mov edi, 2
cmp esi, 3
jb 0x413150
nop word cs:[eax + eax]
nop dword [eax]
mov ebx, dword [esp]
mov ebx, dword [ebx + edi*4]
cmp edx, ebx
jbe 0x414659
cmp edx, eax
jbe 0x413c7e
lea eax, [ebx + ebx*2]
mov eax, dword [ecx + eax*4 + 8]
cmp eax, ebp
ja 0x4136ee
inc edi
mov ebp, eax
mov eax, ebx
cmp esi, edi
jne 0x413670
mov ebx, dword [esp + 4]
jmp 0x41314e
sub eax, ecx
shl ecx, 2
lea edx, [ebp*4]
sub edx, ecx
lea ecx, [ecx + ebx*4]
add ecx, dword [esp + 0x1c]
add edx, dword [esp + 0x80]
nop
mov esi, dword [ecx]
mov ebx, dword [edx]
mov dword [ecx], ebx
mov dword [edx], esi
add ecx, 4
add edx, 0xfffffffc
dec eax
jne 0x4136c0
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 4]
mov edx, ebp
jmp 0x41315b
mov ecx, 2
jmp 0x413125
mov ebx, dword [esp + 4]
jmp 0x413150
mov ecx, 3
jmp 0x413125
mov ecx, dword [esp + 8]
jmp 0x413125
movzx eax, byte [0x94bfc5]
lea edx, [esi + esi]
xor ecx, ecx
and edx, 0x7ffffffc
call fcn.0071ee80
test eax, eax
mov dword [esp + 4], eax
je 0x4147bf
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0x80
call fcn.0071ee80
test eax, eax
je 0x4147c9
mov ebp, eax
mov eax, dword [esp + 0x1c]
xor edi, edi
mov dword [esp + 0x30], 0x10
lea ecx, [eax - 0x10]
mov dword [esp + 0x48], ecx
lea ecx, [eax + 0x10]
mov dword [esp + 0x44], ecx
lea ecx, [eax - 4]
mov dword [esp + 0x28], ecx
xor ecx, ecx
jmp 0x413795
mov edi, 1
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x1c]
cmp ecx, esi
jae 0x413c67
mov edx, esi
mov ebx, ecx
sub edx, ecx
lea ecx, [eax + ecx*4]
mov dword [esp], ebx
cmp edx, 2
mov dword [esp + 0x14], ecx
jae 0x4137c0
mov eax, edx
jmp 0x413920
mov esi, dword [ecx + 4]
cmp esi, dword [ecx]
jae 0x4138f0
mov eax, 2
cmp edx, 2
je 0x4137f5
mov ebx, edi
nop word [eax + eax]
mov edi, esi
mov esi, dword [ecx + eax*4]
cmp esi, edi
jae 0x4137f0
inc eax
cmp edx, eax
jne 0x4137e0
mov eax, edx
mov edi, ebx
mov ebx, dword [esp]
mov edx, eax
add edx, ebx
jb 0x414738
mov esi, dword [esp + 0xc]
mov ebx, edx
mov dword [esp + 8], edx
cmp edx, esi
ja 0x414745
cmp eax, 2
jb 0x4138dd
mov edx, eax
xor esi, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], ebp
shr edx, 1
cmp eax, 0x10
jb 0x413897
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 8]
mov ecx, dword [esp]
mov esi, edx
and esi, 0xfffffff8
mov ebp, esi
lea edi, [edi + ebx*4]
mov ebx, dword [esp + 0x44]
lea ebx, [ebx + ecx*4]
nop dword [eax]
movdqu xmm0, xmmword [ebx - 0x10]
movdqu xmm1, xmmword [ebx]
movdqu xmm2, xmmword [edi - 0x10]
movdqu xmm3, xmmword [edi]
pshufd xmm3, xmm3, 0x1b
pshufd xmm2, xmm2, 0x1b
pshufd xmm0, xmm0, 0x1b
pshufd xmm1, xmm1, 0x1b
movdqu xmmword [ebx - 0x10], xmm3
movdqu xmmword [ebx], xmm2
movdqu xmmword [edi], xmm0
movdqu xmmword [edi - 0x10], xmm1
add edi, 0xffffffe0
add ebx, 0x20
add ebp, 0xfffffff8
jne 0x413850
cmp edx, esi
je 0x4138d1
mov edi, dword [esp + 8]
mov ecx, dword [esp]
sub edx, esi
shl esi, 2
lea edi, [edi*4]
sub edi, esi
lea esi, [esi + ecx*4]
add esi, dword [esp + 0x1c]
add edi, dword [esp + 0x28]
nop word [eax + eax]
mov ebx, dword [esi]
mov ebp, dword [edi]
mov dword [esi], ebp
mov dword [edi], ebx
add esi, 4
add edi, 0xfffffffc
dec edx
jne 0x4138c0
mov esi, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 8]
mov ecx, dword [esp]
jmp 0x413929
mov eax, 2
cmp edx, 2
je 0x413920
mov ebx, edi
nop dword [eax]
mov edi, esi
mov esi, dword [ecx + eax*4]
cmp esi, edi
jb 0x413910
inc eax
cmp edx, eax
jne 0x413900
mov eax, edx
mov edi, ebx
mov ebx, dword [esp]
nop word cs:[eax + eax]
nop
mov esi, dword [esp + 0xc]
lea edx, [eax + ebx]
mov ecx, ebx
mov ebx, edx
sub ebx, ecx
jb 0x414709
cmp edx, esi
ja 0x414709
mov dword [esp + 8], edx
jae 0x413972
cmp eax, 0xa
jae 0x413972
mov ecx, dword [esp]
lea ebx, [ecx + 0xa]
cmp ebx, esi
cmovae ebx, esi
mov dword [esp + 8], ebx
sub ebx, ecx
jb 0x414727
mov ecx, dword [esp + 0x14]
cmp eax, 1
mov edx, ebx
adc eax, 0
push eax
call fcn.004147f0
add esp, 4
cmp edi, dword [esp + 0x30]
jne 0x4139c7
mov dword [esp + 0x10], ebp
mov edx, edi
xor ecx, ecx
movzx eax, byte [0x94bfc5]
shl edx, 4
call fcn.0071ee80
test eax, eax
je 0x41471d
mov ebp, eax
lea eax, [edi + edi]
mov dword [esp + 0x30], eax
lea eax, [edi*8]
push eax
push dword [esp + 0x14]
push ebp
call fcn.007bd9b0
add esp, 0xc
push dword [esp + 0x10]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp]
mov dword [ebp + edi*8], ebx
mov dword [esp + 0x10], ebp
mov dword [ebp + edi*8 + 4], eax
inc edi
cmp edi, 2
jae 0x413a4e
jmp 0x413785
mov ecx, dword [esp + 4]
mov ebp, dword [esp + 0x10]
mov edx, esi
mov edi, dword [esp + 0x24]
sub eax, ecx
lea esi, [edi - 1]
push eax
push ecx
push edx
call fcn.007bd9b0
add esp, 0xc
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
add eax, dword [esp + 0x20]
mov dword [ebp + ecx*8 + 8], eax
mov eax, dword [esp + 0x18]
mov dword [ebp + ecx*8 + 0xc], eax
not ecx
lea eax, [edx + 8]
add ecx, edi
shl ecx, 3
push ecx
push eax
push edx
call fcn.007bd9b0
add esp, 0xc
cmp esi, 1
mov edi, esi
mov esi, dword [esp + 0xc]
jbe 0x413780
mov eax, dword [ebp + edi*8 - 8]
mov ecx, dword [ebp + edi*8 - 4]
add ecx, eax
cmp ecx, esi
je 0x413aa0
mov edx, dword [ebp + edi*8 - 0x10]
cmp edx, eax
jbe 0x413aa0
cmp edi, 2
jbe 0x413c53
mov ecx, dword [ebp + edi*8 - 0x18]
lea esi, [edx + eax]
lea ebx, [edi - 3]
cmp ecx, esi
jbe 0x413c40
mov esi, dword [esp + 0xc]
cmp edi, 3
jbe 0x413c5d
add edx, ecx
cmp dword [ebp + edi*8 - 0x20], edx
mov edx, ebx
jbe 0x413aac
jmp 0x413785
cmp edi, 3
jb 0x413ab0
mov ecx, dword [ebp + edi*8 - 0x18]
lea edx, [edi - 3]
cmp ecx, eax
jb 0x413ab3
lea edx, [edi - 2]
cmp edi, edx
jbe 0x41467d
lea eax, [edx + 1]
mov dword [esp + 0x24], edi
cmp edi, eax
mov eax, dword [esp + 0x1c]
jbe 0x414688
mov ebx, dword [ebp + edx*8 + 8]
mov edi, dword [ebp + edx*8 + 0xc]
mov ecx, dword [ebp + edx*8 + 4]
add edi, ebx
mov dword [esp + 0x54], ebx
mov ebx, edi
sub ebx, ecx
jb 0x4146be
cmp edi, esi
ja 0x4146ca
lea esi, [ebp + edx*8]
mov dword [esp + 0x50], edx
mov edx, dword [ebp + edx*8]
mov dword [esp + 0x18], ecx
lea ecx, [eax + ecx*4]
mov eax, ebx
mov dword [esp + 0x4c], esi
mov dword [esp], ecx
sub eax, edx
lea esi, [ecx + edx*4]
mov dword [esp + 0x20], edx
cmp eax, edx
jae 0x413bb0
mov ebp, eax
lea eax, [eax*4]
push eax
push esi
mov ebx, dword [esp + 0xc]
push ebx
call fcn.007bd9b0
add esp, 0xc
cmp dword [esp + 0x20], 0
lea eax, [ebx + ebp*4]
jle 0x4139f0
test ebp, ebp
mov ecx, ebp
jle 0x4139f0
mov ecx, dword [esp + 0x28]
lea ecx, [ecx + edi*4]
nop word cs:[eax + eax]
mov edx, dword [eax - 4]
mov edi, dword [esi - 4]
mov ebx, 0
mov ebp, 0
cmp edx, edi
sbb ebx, ebx
cmp edx, edi
adc ebp, 0xffffffff
cmp edx, edi
lea esi, [esi + ebx*4]
lea eax, [eax + ebp*4]
mov edx, eax
cmovb edx, esi
cmp esi, dword [esp]
mov edx, dword [edx]
mov dword [ecx], edx
jbe 0x4139f0
add ecx, 0xfffffffc
cmp eax, dword [esp + 4]
ja 0x413b60
jmp 0x4139f0
lea eax, [edx*4]
push eax
push ecx
mov ebp, dword [esp + 0xc]
push ebp
call fcn.007bd9b0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
test ecx, ecx
lea eax, [ebp + ecx*4]
jle 0x413c30
cmp ebx, ecx
jle 0x413c30
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + edi*4]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 4]
nop word cs:[eax + eax]
nop
mov ebp, dword [esi]
mov edi, dword [ecx]
xor edx, edx
xor ebx, ebx
cmp ebp, edi
cmovb edi, ebp
mov ebp, dword [esp]
setae dl
lea ecx, [ecx + edx*4]
setb dl
mov dword [ebp], edi
add ebp, 4
cmp ecx, eax
mov dword [esp], ebp
jae 0x413c34
mov bl, dl
lea esi, [esi + ebx*4]
cmp esi, dword [esp + 0x14]
jb 0x413bf0
jmp 0x413c34
mov ecx, dword [esp + 4]
mov ebp, dword [esp + 0x10]
mov edx, dword [esp]
jmp 0x4139fa
mov esi, dword [esp + 0xc]
mov edx, ebx
cmp ecx, eax
jae 0x413ab0
jmp 0x413ab3
mov edi, 2
jmp 0x413785
mov edi, 3
jmp 0x413785
push ebp
push 0
push dword [0x94bf18]
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
call esi
push dword [esp + 4]
jmp 0x413ca9
mov ecx, eax
push 0x7d6888
call fcn.007c1be0
push 0x7d6878
call fcn.007c1be0
push edi
push 0
push dword [0x94bf18]
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
call esi
push dword [esp + 0x18]
push 0
push dword [0x94bf18]
call esi
movsd xmm1, qword [esp + 0x9c]
mov eax, dword [esp + 0xac]
movsd xmm0, qword [esp + 0xa4]
movsd xmm2, qword [esp + 0x8c]
xor ecx, ecx
mov edx, 0x2c
movsd qword [esp + 0x68], xmm1
movsd xmm1, qword [esp + 0x94]
mov dword [esp + 0x78], eax
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x58], xmm2
movsd qword [esp + 0x60], xmm1
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
je 0x414773
mov dword [eax], 1
mov dword [eax + 4], 1
mov edi, eax
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x60]
movsd qword [eax + 8], xmm0
movsd qword [eax + 0x10], xmm1
movsd xmm0, qword [esp + 0x68]
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [esp + 0x70]
movsd qword [eax + 0x20], xmm0
mov eax, dword [esp + 0x78]
mov dword [edi + 0x28], eax
cmp dword [edi + 0x10], 0
je 0x414782
mov esi, dword [edi + 0x20]
cmp esi, 1
mov ecx, esi
je 0x413d85
test esi, esi
je 0x4147d3
lea eax, [esi - 1]
mov ecx, 1
nop dword [eax + eax]
add ecx, ecx
dec eax
jne 0x413d80
lock inc dword [edi]
jle 0x414755
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov edx, 0x300
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
je 0x414796
mov dword [eax], 0
mov dword [eax + 4], 4
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 4
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 4
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 4
mov dword [eax + 0x2c], 0
mov dword [eax + 0x30], 0
mov dword [eax + 0x34], 4
mov dword [eax + 0x38], 0
mov dword [eax + 0x3c], 0
mov dword [eax + 0x40], 4
mov dword [eax + 0x44], 0
mov dword [eax + 0x48], 0
mov dword [eax + 0x4c], 4
mov dword [eax + 0x50], 0
mov dword [eax + 0x54], 0
mov dword [eax + 0x58], 4
mov dword [eax + 0x5c], 0
mov dword [eax + 0x60], 0
mov dword [eax + 0x64], 4
mov dword [eax + 0x68], 0
mov dword [eax + 0x6c], 0
mov dword [eax + 0x70], 4
mov dword [eax + 0x74], 0
mov dword [eax + 0x78], 0
mov dword [eax + 0x7c], 4
mov dword [eax + 0x80], 0
mov dword [eax + 0x84], 0
mov dword [eax + 0x88], 4
mov dword [eax + 0x8c], 0
mov dword [eax + 0x90], 0
mov dword [eax + 0x94], 4
mov dword [eax + 0x98], 0
mov dword [eax + 0x9c], 0
mov dword [eax + 0xa0], 4
mov dword [eax + 0xa4], 0
mov dword [eax + 0xa8], 0
mov dword [eax + 0xac], 4
mov dword [eax + 0xb0], 0
mov dword [eax + 0xb4], 0
mov dword [eax + 0xb8], 4
mov dword [eax + 0xbc], 0
mov dword [eax + 0xc0], 0
mov dword [eax + 0xc4], 4
mov dword [eax + 0xc8], 0
mov dword [eax + 0xcc], 0
mov dword [eax + 0xd0], 4
mov dword [eax + 0xd4], 0
mov dword [eax + 0xd8], 0
mov dword [eax + 0xdc], 4
mov dword [eax + 0xe0], 0
mov dword [eax + 0xe4], 0
mov dword [eax + 0xe8], 4
mov dword [eax + 0xec], 0
mov dword [eax + 0xf0], 0
mov dword [eax + 0xf4], 4
mov dword [eax + 0xf8], 0
mov dword [eax + 0xfc], 0
mov dword [eax + 0x100], 4
mov dword [eax + 0x104], 0
mov dword [eax + 0x108], 0
mov dword [eax + 0x10c], 4
mov dword [eax + 0x110], 0
mov dword [eax + 0x114], 0
mov dword [eax + 0x118], 4
mov dword [eax + 0x11c], 0
mov dword [eax + 0x120], 0
mov dword [eax + 0x124], 4
mov dword [eax + 0x128], 0
mov dword [eax + 0x12c], 0
mov dword [eax + 0x130], 4
mov dword [eax + 0x134], 0
mov dword [eax + 0x138], 0
mov dword [eax + 0x13c], 4
mov dword [eax + 0x140], 0
mov dword [eax + 0x144], 0
mov dword [eax + 0x148], 4
mov dword [eax + 0x14c], 0
mov dword [eax + 0x150], 0
mov dword [eax + 0x154], 4
mov dword [eax + 0x158], 0
mov dword [eax + 0x15c], 0
mov dword [eax + 0x160], 4
mov dword [eax + 0x164], 0
mov dword [eax + 0x168], 0
mov dword [eax + 0x16c], 4
mov dword [eax + 0x170], 0
mov dword [eax + 0x174], 0
mov dword [eax + 0x178], 4
mov dword [eax + 0x17c], 0
mov dword [eax + 0x180], 0
mov dword [eax + 0x184], 4
mov dword [eax + 0x188], 0
mov dword [eax + 0x18c], 0
mov dword [eax + 0x190], 4
mov dword [eax + 0x194], 0
mov dword [eax + 0x198], 0
mov dword [eax + 0x19c], 4
mov dword [eax + 0x1a0], 0
mov dword [eax + 0x1a4], 0
mov dword [eax + 0x1a8], 4
mov dword [eax + 0x1ac], 0
mov dword [eax + 0x1b0], 0
mov dword [eax + 0x1b4], 4
mov dword [eax + 0x1b8], 0
mov dword [eax + 0x1bc], 0
mov dword [eax + 0x1c0], 4
mov dword [eax + 0x1c4], 0
mov dword [eax + 0x1c8], 0
mov dword [eax + 0x1cc], 4
mov dword [eax + 0x1d0], 0
mov dword [eax + 0x1d4], 0
mov dword [eax + 0x1d8], 4
mov dword [eax + 0x1dc], 0
mov dword [eax + 0x1e0], 0
mov dword [eax + 0x1e4], 4
mov dword [eax + 0x1e8], 0
mov dword [eax + 0x1ec], 0
mov dword [eax + 0x1f0], 4
mov dword [eax + 0x1f4], 0
mov dword [eax + 0x1f8], 0
mov dword [eax + 0x1fc], 4
mov dword [eax + 0x200], 0
mov dword [eax + 0x204], 0
mov dword [eax + 0x208], 4
mov dword [eax + 0x20c], 0
mov dword [eax + 0x210], 0
mov dword [eax + 0x214], 4
mov dword [eax + 0x218], 0
mov dword [eax + 0x21c], 0
mov dword [eax + 0x220], 4
mov dword [eax + 0x224], 0
mov dword [eax + 0x228], 0
mov dword [eax + 0x22c], 4
mov dword [eax + 0x230], 0
mov dword [eax + 0x234], 0
mov dword [eax + 0x238], 4
mov dword [eax + 0x23c], 0
mov dword [eax + 0x240], 0
mov dword [eax + 0x244], 4
mov dword [eax + 0x248], 0
mov dword [eax + 0x24c], 0
mov dword [eax + 0x250], 4
mov dword [eax + 0x254], 0
mov dword [eax + 0x258], 0
mov dword [eax + 0x25c], 4
mov dword [eax + 0x260], 0
mov dword [eax + 0x264], 0
mov dword [eax + 0x268], 4
mov dword [eax + 0x26c], 0
mov dword [eax + 0x270], 0
mov dword [eax + 0x274], 4
mov dword [eax + 0x278], 0
mov dword [eax + 0x27c], 0
mov dword [eax + 0x280], 4
mov dword [eax + 0x284], 0
mov dword [eax + 0x288], 0
mov dword [eax + 0x28c], 4
mov dword [eax + 0x290], 0
mov dword [eax + 0x294], 0
mov dword [eax + 0x298], 4
mov dword [eax + 0x29c], 0
mov dword [eax + 0x2a0], 0
mov dword [eax + 0x2a4], 4
mov dword [eax + 0x2a8], 0
mov dword [eax + 0x2ac], 0
mov dword [eax + 0x2b0], 4
mov dword [eax + 0x2b4], 0
mov dword [eax + 0x2b8], 0
mov dword [eax + 0x2bc], 4
mov dword [eax + 0x2c0], 0
mov dword [eax + 0x2c4], 0
mov dword [eax + 0x2c8], 4
mov dword [eax + 0x2cc], 0
mov dword [eax + 0x2d0], 0
mov dword [eax + 0x2d4], 4
mov dword [eax + 0x2d8], 0
mov dword [eax + 0x2dc], 0
mov dword [eax + 0x2e0], 4
mov dword [eax + 0x2e4], 0
mov dword [eax + 0x2e8], 0
mov dword [eax + 0x2ec], 4
mov dword [eax + 0x2f0], 0
mov dword [eax + 0x2f4], 0
mov dword [eax + 0x2f8], 4
mov dword [eax + 0x2fc], 0
mov dword [esp], eax
mov edx, dword [edi + 0x10]
test edx, edx
je 0x41456d
xor ebp, ebp
mov dword [esp + 4], edi
mov dword [esp + 0x14], esi
jmp 0x41450d
mov eax, dword [esi + 4]
mov dword [eax + edx*8], edi
mov edi, dword [esp + 4]
mov dword [eax + edx*8 + 4], ebx
inc edx
mov dword [esi + 8], edx
mov esi, dword [esp + 0x14]
mov edx, dword [edi + 0x10]
cmp ebp, edx
jae 0x41456d
mov eax, dword [edi + 0x1c]
cmp ebp, eax
jae 0x41463f
mov eax, dword [edi + 0x18]
mov ebx, dword [eax + ebp*4]
cmp edx, ebx
jbe 0x41464d
mov eax, dword [edi + 0xc]
lea ecx, [ebx + ebx*2]
mov edx, dword [eax + ecx*4 + 8]
cmp esi, edx
ja 0x4146f8
mov eax, dword [eax + ecx*4 + 4]
inc ebp
xor edi, edi
nop
movzx edx, byte [eax]
inc eax
dec esi
lea edi, [edx + edi*2]
jne 0x414540
mov ecx, dword [esp]
mov eax, edi
and eax, 0x3f
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*4 + 8]
lea esi, [ecx + eax*4]
cmp edx, dword [ecx + eax*4]
jne 0x4144f0
mov ecx, esi
call fcn.004c7a80
mov edx, dword [esi + 8]
jmp 0x4144f0
mov eax, dword [esp + 0x3c]
test byte [eax + 0x26], 1
jne 0x4145e2
lock inc dword [edi]
mov eax, dword [esp + 0x34]
mov ebp, dword [esp]
jle 0x414755
lock dec dword [edi]
jne 0x414597
mov ecx, edi
call fcn.00522b30
mov eax, dword [esp + 0x34]
mov dword [eax], 0x80000000
lock dec dword [edi]
jne 0x4145a9
mov ecx, edi
call fcn.00522b30
mov ebx, edi
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
mov esi, 0xfffffd00
jmp 0x4145c5
add esi, 0xc
je 0x414619
cmp dword [ebp + esi + 0x300], 0
je 0x4145c0
push dword [ebp + esi + 0x304]
push 0
push dword [0x94bf18]
call edi
jmp 0x4145c0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp]
mov edx, dword [esp + 0x20]
mov dword [eax], 0x40
mov dword [eax + 4], ecx
mov dword [eax + 8], 0x40
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edx
mov dword [eax + 0x18], edi
mov dword [eax + 0x1c], 0
mov dword [eax + 0x2c], 0
jmp 0x414634
push ebp
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
lock dec dword [ebx]
jne 0x414634
mov ecx, ebx
call fcn.00522b30
add esp, 0xb0
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, ebp
mov edx, eax
push 0x7d68a8
call fcn.007c1be0
mov ecx, ebx
push 0x7d6898
call fcn.007c1be0
mov ecx, ebx
push 0x7d6878
call fcn.007c1be0
mov ecx, eax
push 0x7d6878
call fcn.007c1be0
mov ecx, ebx
push 0x7d6888
call fcn.007c1be0
lea ecx, [esp + 0x58]
mov edx, 0x936018
jmp 0x414691
lea ecx, [esp + 0x58]
mov edx, 0x936028
mov dword [esp + 0x58], 0x935dd0
mov dword [esp + 0x5c], 1
mov dword [esp + 0x68], 0
mov dword [esp + 0x60], 0x93d1f8
mov dword [esp + 0x64], 0
call fcn.007c1b50
mov edx, edi
push 0x936038
call fcn.007c1e60
mov ecx, edi
mov edx, dword [esp + 0xc]
push 0x936038
call fcn.007c1c40
mov edx, ebx
push 0x936038
call fcn.007c1e60
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
push 0x936038
call fcn.007c1c40
mov ecx, esi
push 0x7d69a4
call fcn.007c1c40
call fcn.00418cb0
mov ecx, str.assertion_failed:_end___start__end___len
mov edx, 0x2c
push 0x9360a4
call fcn.007c1ca0
mov ecx, 0x936068
call fcn.007c1fe0
mov ecx, dword [esp]
mov edx, dword [esp + 8]
push 0x9360b4
call fcn.007c1e60
mov ecx, dword [esp]
push 0x936008
call fcn.007c1e60
mov ecx, dword [esp + 8]
mov edx, esi
push 0x936008
call fcn.007c1c40
ud2
mov ecx, 4
mov edx, ebx
call fcn.007c1490
mov edx, dword [esp + 0x38]
mov ecx, ebx
push 0x9360b4
call fcn.007c1e60
mov ecx, 4
mov edx, 0x2c
call fcn.007c1490
mov ecx, str.assertion_failed:_patterns.len_____1C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_aho_corasick_1.1.3_srcpacked_rabinkarp.rs
mov edx, 0x25
push 0x7d6964
call fcn.007c1ca0
mov ecx, 4
mov edx, 0x300
call fcn.007c1490
mov ecx, ebx
push 0x936008
call fcn.007c1e60
mov ecx, edx
mov edx, esi
push 0x936008
call fcn.007c1c40
mov ecx, 0x936048
call fcn.007c1fe0
mov ecx, 0x936058
call fcn.007c1fe0
mov ecx, 0x7d6974
mov edx, 0x1f
push 0x7d6994
call fcn.007c1ca0
int3