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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc4
cmp byte [edx + 0x29], 0
jne 0x495299
mov edi, dword [edx + 8]
test edi, edi
je 0x495299
cmp edi, 0xaaaaaaa
ja 0x49610a
lea eax, [edi*4]
lea eax, [eax + eax*2]
test eax, eax
mov dword [esp + 0x1c], eax
js 0x49610a
mov ebx, dword [edx]
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], ecx
je 0x4952a4
mov al, byte [0x803894]
mov ecx, dword [esp + 0x1c]
mov edx, 4
call fcn.004889b0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x4952ac
mov edx, dword [esp + 0x1c]
mov ecx, 4
jmp 0x49615a
mov dword [ecx], 0
jmp 0x496034
mov dword [esp + 0x14], 4
xor esi, esi
mov dword [esp + 0x3c], edi
cmp dword [esp + 0x1c], esi
je 0x4952fe
lea eax, [ebx + 0xc]
mov dword [esp], eax
mov eax, dword [ebx]
mov ebx, dword [ebx + 8]
mov ecx, ebx
mov dword [esp + 0xc], eax
call fcn.0059c336
mov ebp, eax
mov dword [esp + 8], edx
push ebx
push dword [esp + 0x10]
push eax
call fcn.0064a810
add esp, 0xc
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
dec edi
mov dword [eax + esi], ebp
mov dword [eax + esi + 4], ecx
mov dword [eax + esi + 8], ebx
mov ebx, dword [esp]
lea esi, [esi + 0xc]
jne 0x4952b2
mov ebx, dword [esp + 0x48]
mov ebp, dword [ebx + 0x14]
mov esi, dword [ebx + 0xc]
mov ecx, ebp
call fcn.00489cad
mov edi, eax
lea eax, [ebp*4]
mov dword [esp], edx
push eax
push esi
push edi
call fcn.0064a810
add esp, 0xc
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x3c]
mov edx, dword [esp]
mov cl, byte [ebx + 0x24]
mov dword [esp + 0x28], edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], edx
mov esi, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
test cl, cl
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], edx
mov byte [esp + 0xc0], cl
je 0x4953b8
lea eax, [esp + 0xa0]
cmp ebp, 0x15
mov dword [esp + 0x50], eax
jae 0x4953df
cmp ebp, 1
jbe 0x495e02
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x50]
mov edx, ebp
push eax
push 1
call fcn.0048945d
add esp, 8
jmp 0x495e02
cmp ebp, 0x15
jae 0x495976
cmp ebp, 1
jbe 0x495e02
mov ecx, dword [esp + 0x28]
mov edx, ebp
push 1
call fcn.00489577
add esp, 4
jmp 0x495e02
mov al, byte [0x803894]
lea ecx, [ebp + ebp]
mov edx, 4
and ecx, 0x7ffffffc
call fcn.004889b0
test eax, eax
mov dword [esp + 0x18], eax
je 0x49617f
mov al, byte [0x803894]
mov ecx, 0x80
mov edx, 4
call fcn.004889b0
test eax, eax
je 0x496193
mov ebx, eax
mov eax, dword [esp + 0x28]
xor esi, esi
mov dword [esp + 0x2c], 0x10
add eax, 0xfffffffc
mov dword [esp + 0x4c], eax
xor eax, eax
mov ecx, dword [esp + 0x28]
mov edx, eax
mov eax, ebp
mov dword [esp + 0x24], esi
sub ebp, edx
mov dword [esp + 8], edx
cmp ebp, 2
lea edi, [ecx + edx*4]
mov dword [esp], edi
jae 0x4954bd
mov ecx, eax
mov eax, dword [esp + 0x2c]
mov edi, ecx
sub edi, edx
jb 0x4960d7
cmp ecx, dword [esp + 0x10]
ja 0x4960d7
jae 0x49553e
cmp ebp, 0xa
jae 0x49553e
mov eax, dword [esp + 0x10]
lea edi, [edx + 0xa]
cmp edi, eax
cmovae edi, eax
mov dword [esp + 0x34], edi
sub edi, edx
jb 0x496124
mov ecx, dword [esp]
cmp ebp, 1
mov edx, edi
lea eax, [esp + 0x50]
adc ebp, 0
push eax
push ebp
call fcn.0048945d
add esp, 8
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 8]
jmp 0x495542
mov ecx, dword [esp + 0x50]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 8]
cmp edx, eax
jbe 0x496062
mov esi, dword [edi]
cmp edx, esi
jbe 0x496066
mov ecx, dword [ecx]
lea edi, [eax + eax*2]
lea esi, [esi + esi*2]
mov edi, dword [ecx + edi*4 + 8]
mov esi, dword [ecx + esi*4 + 8]
cmp edi, esi
jbe 0x495886
cmp ebp, 3
jb 0x4958f1
mov dword [esp + 4], ebx
mov ebx, 2
mov dword [esp + 0x1c], esi
mov dword [esp + 0xc], edi
mov esi, dword [esp]
mov esi, dword [esi + ebx*4]
cmp edx, esi
jbe 0x496051
cmp edx, eax
jbe 0x495dd7
lea eax, [esi + esi*2]
mov eax, dword [ecx + eax*4 + 8]
cmp eax, edi
jbe 0x4958cc
inc ebx
mov edi, eax
mov eax, esi
cmp ebp, ebx
jne 0x49550b
jmp 0x4958ca
mov dword [esp + 0x34], ecx
mov ebp, dword [esp + 0x10]
cmp esi, eax
jne 0x4955a4
mov dword [esp + 4], ebx
mov ecx, eax
mov esi, eax
mov edx, 4
mov al, byte [0x803894]
shl ecx, 4
call fcn.004889b0
test eax, eax
je 0x4960e8
mov ebx, eax
lea eax, [esi + esi]
shl esi, 3
mov dword [esp], eax
push esi
mov esi, dword [esp + 8]
push esi
push ebx
call fcn.0064a810
add esp, 0xc
push esi
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 8]
mov dword [esp + 0x2c], eax
mov dword [ebx + esi*8], edi
mov dword [ebx + esi*8 + 4], edx
inc esi
mov dword [esp + 4], ebx
cmp esi, 2
jb 0x495875
mov eax, dword [ebx + esi*8 - 8]
mov ecx, dword [ebx + esi*8 - 4]
add ecx, eax
cmp ecx, ebp
je 0x49560a
mov edx, dword [ebx + esi*8 - 0x10]
cmp edx, eax
jbe 0x49560a
cmp esi, 2
jbe 0x495875
lea ecx, [esi - 3]
mov edi, ebx
mov edi, esi
mov dword [esp + 0x30], ecx
mov ecx, dword [ebx + esi*8 - 0x18]
lea esi, [edx + eax]
cmp ecx, esi
jbe 0x495618
cmp edi, 3
mov esi, edi
jbe 0x495875
add edx, ecx
mov edi, dword [esp + 0x30]
cmp dword [ebx + esi*8 - 0x20], edx
jbe 0x49561e
jmp 0x495875
cmp esi, 3
jb 0x495622
mov ecx, dword [ebx + esi*8 - 0x18]
lea edi, [esi - 3]
jmp 0x49561e
mov esi, edi
mov edi, dword [esp + 0x30]
cmp ecx, eax
jb 0x495625
lea edi, [esi - 2]
cmp esi, edi
jbe 0x49606d
lea eax, [edi + 1]
mov dword [esp + 0x24], esi
cmp esi, eax
jbe 0x496078
mov eax, dword [ebx + edi*8 + 8]
mov esi, dword [ebx + edi*8 + 0xc]
mov ecx, dword [ebx + edi*8 + 4]
add esi, eax
mov ebx, esi
sub ebx, ecx
jb 0x4960ac
cmp esi, ebp
mov edx, esi
mov dword [esp + 8], esi
ja 0x4960ba
mov dword [esp + 0x68], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x30], edi
mov edx, dword [eax + edi*8]
mov eax, dword [esp + 0x28]
lea ecx, [eax + ecx*4]
mov eax, ebx
mov dword [esp + 0x20], edx
sub eax, edx
lea ebp, [ecx + edx*4]
mov dword [esp], ecx
cmp eax, edx
jae 0x495732
mov ebx, eax
lea eax, [eax*4]
push eax
push ebp
mov esi, dword [esp + 0x20]
push esi
call fcn.0064a810
add esp, 0xc
cmp dword [esp + 0x20], 0
lea edx, [esi + ebx*4]
jle 0x495723
test ebx, ebx
jle 0x495723
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 8]
lea esi, [eax + ecx*4]
mov ebx, dword [esp + 0x50]
mov edi, edx
mov ecx, dword [edx - 4]
mov edx, dword [ebx + 8]
cmp edx, ecx
jbe 0x496053
mov eax, dword [ebp - 4]
cmp edx, eax
jbe 0x495dd7
mov edx, dword [ebx]
lea ecx, [ecx + ecx*2]
lea eax, [eax + eax*2]
xor ebx, ebx
mov ecx, dword [edx + ecx*4 + 8]
mov eax, dword [edx + eax*4 + 8]
xor edx, edx
cmp ecx, eax
setbe dl
seta bl
shl edx, 2
shl ebx, 2
sub edi, edx
sub ebp, ebx
cmp ecx, eax
mov eax, edi
mov edx, edi
cmova eax, ebp
cmp ebp, dword [esp]
mov eax, dword [eax]
mov dword [esi], eax
jbe 0x495723
add esi, 0xfffffffc
cmp edx, dword [esp + 0x18]
ja 0x4956c3
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 4]
mov ecx, ebp
jmp 0x495819
lea eax, [edx*4]
push eax
push ecx
mov edi, dword [esp + 0x20]
push edi
call fcn.0064a810
mov eax, dword [esp + 0x2c]
add esp, 0xc
test eax, eax
lea edx, [edi + eax*4]
jle 0x495804
cmp ebx, eax
jle 0x495804
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], edx
lea eax, [eax + ecx*4]
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 0x50]
mov ecx, dword [ebp]
mov edx, dword [ebx + 8]
cmp edx, ecx
jbe 0x496053
mov eax, dword [esi]
cmp edx, eax
jbe 0x495dd7
mov edi, dword [ebx]
lea edx, [ecx + ecx*2]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0xc], esi
xor ebx, ebx
mov edx, dword [edi + edx*4 + 8]
mov dword [esp + 0x14], edi
mov ebp, dword [esp + 0x14]
mov dword [esp + 8], edx
lea edx, [eax + eax*2]
mov dword [esp + 0x1c], edx
mov esi, dword [esp + 8]
xor edx, edx
mov edi, dword [esp + 0x1c]
cmp esi, dword [ebp + edi*4 + 8]
mov esi, dword [esp + 0xc]
cmova eax, ecx
mov ecx, dword [esp]
setbe bl
lea esi, [esi + ebx*4]
mov dword [ecx], eax
seta al
add ecx, 4
cmp esi, dword [esp + 0x38]
jae 0x495811
mov ebp, dword [esp + 0x3c]
mov dl, al
mov dword [esp], ecx
lea ebp, [ebp + edx*4]
cmp ebp, dword [esp + 0x40]
jb 0x495776
mov eax, dword [esp + 4]
mov ecx, dword [esp]
jmp 0x495815
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 4]
mov ecx, dword [esp]
jmp 0x495819
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
sub edx, esi
lea ebx, [edi - 1]
mov dword [esp], ebx
mov ebx, dword [esp + 0x30]
lea ebp, [eax + ebx*8]
push edx
push esi
push ecx
call fcn.0064a810
add esp, 0xc
mov eax, dword [esp + 0x68]
not ebx
add ebx, edi
shl ebx, 3
add eax, dword [esp + 0x20]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0xc], eax
lea eax, [ebp + 8]
push ebx
push eax
push ebp
call fcn.0064a810
add esp, 0xc
mov esi, dword [esp]
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 4]
cmp esi, 1
ja 0x4955b9
xor esi, esi
inc esi
mov eax, dword [esp + 0x34]
cmp eax, ebp
jb 0x495439
jmp 0x495de3
cmp ebp, 3
jb 0x49595d
mov dword [esp + 4], ebx
mov ebx, 2
mov dword [esp + 0x1c], esi
mov dword [esp + 0xc], edi
mov esi, dword [esp]
mov esi, dword [esi + ebx*4]
cmp edx, esi
jbe 0x496051
cmp edx, eax
jbe 0x495dd7
lea eax, [esi + esi*2]
mov eax, dword [ecx + eax*4 + 8]
cmp eax, edi
ja 0x4958cc
inc ebx
mov edi, eax
mov eax, esi
cmp ebp, ebx
jne 0x4958a0
mov ebx, ebp
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x1c]
mov ebp, ebx
mov esi, dword [esp + 0x24]
lea ecx, [ebx + edx]
cmp dword [esp + 0xc], eax
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x2c]
jbe 0x49545c
jmp 0x495905
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov ebp, 2
lea ecx, [edx + 2]
cmp edx, ecx
ja 0x496161
cmp ecx, dword [esp + 0x10]
mov edi, dword [esp]
ja 0x496171
cmp ebp, 2
jb 0x49545c
mov dword [esp + 0x34], ecx
lea ecx, [edx + ebp]
mov edx, dword [esp + 0x4c]
mov eax, ebp
shr eax, 1
lea ecx, [edx + ecx*4]
mov edx, edi
mov esi, dword [edx]
mov edi, dword [ecx]
mov dword [edx], edi
mov dword [ecx], esi
add edx, 4
add ecx, 0xfffffffc
dec eax
jne 0x495937
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 8]
jmp 0x49545c
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov ebp, 2
lea ecx, [edx + 2]
jmp 0x49545c
mov al, byte [0x803894]
lea ecx, [ebp + ebp]
mov edx, 4
and ecx, 0x7ffffffc
call fcn.004889b0
test eax, eax
mov dword [esp + 8], eax
je 0x49617f
mov al, byte [0x803894]
mov ecx, 0x80
mov edx, 4
call fcn.004889b0
test eax, eax
je 0x496193
mov edi, eax
mov eax, dword [esp + 0x28]
xor ebx, ebx
xor edx, edx
mov dword [esp + 0x24], 0x10
add eax, 0xfffffffc
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x28]
mov eax, ebp
mov dword [esp], edx
sub eax, edx
cmp eax, 2
lea ecx, [ecx + edx*4]
jae 0x4959ee
mov dword [esp + 0xc], eax
mov eax, ebp
jmp 0x495adf
mov edx, dword [ecx]
mov esi, dword [ecx + 4]
cmp esi, edx
mov dword [esp + 0xc], edx
jae 0x495a10
cmp eax, 2
jne 0x495a28
mov edx, dword [esp]
mov dword [esp + 0xc], 2
lea eax, [edx + 2]
jmp 0x495a82
cmp eax, 2
jne 0x495a47
mov edx, dword [esp]
mov dword [esp + 0xc], 2
lea eax, [edx + 2]
jmp 0x495adf
mov dword [esp + 0x14], ebx
mov dword [esp + 4], edi
mov edi, 2
mov ebx, esi
mov ebp, ebx
mov ebx, dword [ecx + edi*4]
cmp ebx, ebp
jae 0x495a66
inc edi
cmp eax, edi
jne 0x495a37
jmp 0x495a64
mov dword [esp + 0x14], ebx
mov dword [esp + 4], edi
mov edi, 2
mov ebx, esi
mov ebp, ebx
mov ebx, dword [ecx + edi*4]
cmp ebx, ebp
jb 0x495a66
inc edi
cmp eax, edi
jne 0x495a56
mov edi, eax
mov edx, dword [esp]
cmp esi, dword [esp + 0xc]
mov dword [esp + 0xc], edi
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
lea eax, [edi + edx]
mov edi, dword [esp + 4]
jae 0x495adf
cmp edx, eax
ja 0x496111
cmp eax, ebp
mov dword [esp + 0x20], eax
ja 0x496118
mov eax, dword [esp + 0xc]
cmp eax, 2
jb 0x495ad8
mov dword [esp + 4], edi
mov edi, dword [esp]
mov esi, eax
mov edx, eax
mov dword [esp + 0x14], ebx
shr edx, 1
add esi, edi
mov edi, dword [esp + 0x30]
lea esi, [edi + esi*4]
mov edi, ecx
mov ebx, dword [edi]
mov ebp, dword [esi]
mov dword [edi], ebp
mov dword [esi], ebx
add edi, 4
add esi, 0xfffffffc
dec edx
jne 0x495abb
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 4]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov edx, dword [esp]
mov esi, eax
sub esi, edx
jb 0x4960d7
cmp eax, ebp
ja 0x4960d7
mov dword [esp + 0x20], eax
jae 0x495b2a
cmp dword [esp + 0xc], 0xa
jae 0x495b2a
mov eax, dword [esp]
lea esi, [eax + 0xa]
cmp esi, ebp
cmovae esi, ebp
mov dword [esp + 0x20], esi
sub esi, eax
jb 0x496101
mov eax, dword [esp + 0xc]
mov edx, esi
cmp eax, 1
adc eax, 0
push eax
call fcn.00489577
add esp, 4
mov eax, dword [esp + 0x24]
cmp ebx, eax
jne 0x495b8e
mov dword [esp + 0x14], ebx
mov dword [esp + 4], edi
mov ecx, eax
mov ebx, eax
mov edx, 4
mov al, byte [0x803894]
shl ecx, 4
call fcn.004889b0
test eax, eax
je 0x4960e8
mov edi, eax
lea eax, [ebx + ebx]
shl ebx, 3
mov dword [esp + 0xc], eax
push ebx
mov ebx, dword [esp + 8]
push ebx
push edi
call fcn.0064a810
add esp, 0xc
push ebx
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp]
mov dword [edi + ebx*8], esi
mov dword [esp + 4], edi
mov dword [edi + ebx*8 + 4], eax
inc ebx
cmp ebx, 2
jb 0x495dab
mov eax, dword [edi + ebx*8 - 8]
mov ecx, dword [edi + ebx*8 - 4]
add ecx, eax
cmp ecx, ebp
je 0x495bef
mov edx, dword [edi + ebx*8 - 0x10]
cmp edx, eax
jbe 0x495bef
cmp ebx, 2
jbe 0x495dab
mov ecx, dword [edi + ebx*8 - 0x18]
lea esi, [edx + eax]
lea ebp, [ebx - 3]
cmp ecx, esi
jbe 0x495bfd
cmp ebx, 3
jbe 0x495db9
add edx, ecx
cmp dword [edi + ebx*8 - 0x20], edx
mov edx, ebp
mov ebp, dword [esp + 0x10]
jbe 0x495c03
jmp 0x495dab
cmp ebx, 3
jb 0x495c07
mov ecx, dword [edi + ebx*8 - 0x18]
lea edx, [ebx - 3]
jmp 0x495c03
mov edx, ebp
mov ebp, dword [esp + 0x10]
cmp ecx, eax
jb 0x495c0a
lea edx, [ebx - 2]
cmp ebx, edx
jbe 0x49606d
lea eax, [edx + 1]
mov dword [esp + 0x14], ebx
cmp ebx, eax
jbe 0x496078
mov eax, dword [edi + edx*8 + 8]
mov ebx, dword [edi + edx*8 + 0xc]
mov ecx, dword [edi + edx*8 + 4]
add ebx, eax
mov esi, ebx
sub esi, ecx
jb 0x4960a4
cmp ebx, ebp
mov dword [esp + 0x3c], eax
ja 0x4960a8
lea eax, [edi + edx*8]
mov dword [esp + 0x18], edx
mov dword [esp + 0x38], ecx
mov edx, dword [eax]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x28]
lea ecx, [eax + ecx*4]
mov eax, esi
mov dword [esp + 0x1c], edx
sub eax, edx
lea ebp, [ecx + edx*4]
mov dword [esp], ecx
cmp eax, edx
jae 0x495ce1
mov edi, eax
lea eax, [eax*4]
push eax
push ebp
mov esi, dword [esp + 0x10]
push esi
call fcn.0064a810
add esp, 0xc
cmp dword [esp + 0x1c], 0
lea eax, [esi + edi*4]
jle 0x495cd7
test edi, edi
mov ecx, edi
jle 0x495cd7
mov ecx, dword [esp + 0x30]
lea ecx, [ecx + ebx*4]
mov edx, dword [eax - 4]
mov esi, dword [ebp - 4]
mov ebx, 0
mov edi, 0
cmp edx, esi
sbb ebx, ebx
cmp edx, esi
adc edi, 0xffffffff
cmp edx, esi
lea ebp, [ebp + ebx*4]
lea eax, [eax + edi*4]
mov edx, eax
cmovb edx, ebp
cmp ebp, dword [esp]
mov edx, dword [edx]
mov dword [ecx], edx
jbe 0x495cd7
add ecx, 0xfffffffc
cmp eax, dword [esp + 8]
ja 0x495c9e
mov ecx, dword [esp + 8]
mov edi, dword [esp + 4]
jmp 0x495d54
lea eax, [edx*4]
push eax
push ecx
mov edi, dword [esp + 0x10]
push edi
call fcn.0064a810
mov ecx, dword [esp + 0x28]
add esp, 0xc
test ecx, ecx
lea eax, [edi + ecx*4]
jle 0x495d49
cmp esi, ecx
jle 0x495d49
mov ecx, dword [esp + 0x28]
lea ecx, [ecx + ebx*4]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 8]
mov edi, dword [ebp]
mov esi, dword [ecx]
xor edx, edx
xor ebx, ebx
cmp edi, esi
cmovb esi, edi
mov edi, dword [esp]
setae dl
lea ecx, [ecx + edx*4]
setb dl
mov dword [edi], esi
add edi, 4
cmp ecx, eax
mov dword [esp], edi
jae 0x495d4d
mov bl, dl
lea ebp, [ebp + ebx*4]
cmp ebp, dword [esp + 0xc]
jb 0x495d15
jmp 0x495d4d
mov ecx, dword [esp + 8]
mov edi, dword [esp + 4]
mov ebp, dword [esp]
mov ebx, dword [esp + 0x14]
sub eax, ecx
lea esi, [ebx - 1]
push eax
push ecx
push ebp
call fcn.0064a810
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
add eax, dword [esp + 0x1c]
mov dword [edi + ecx*8 + 8], eax
mov eax, dword [esp + 0x38]
mov dword [edi + ecx*8 + 0xc], eax
not ecx
lea eax, [edx + 8]
add ecx, ebx
shl ecx, 3
push ecx
push eax
push edx
call fcn.0064a810
add esp, 0xc
mov ebp, dword [esp + 0x10]
cmp esi, 1
mov ebx, esi
ja 0x495ba6
xor ebx, ebx
inc ebx
mov edx, dword [esp + 0x20]
cmp edx, ebp
jb 0x4959d0
jmp 0x495dbf
mov ebp, dword [esp + 0x10]
jmp 0x495dab
xor esi, esi
push edi
push esi
push dword [0x8032a8]
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
call edi
push dword [esp + 8]
jmp 0x495df9
mov ecx, eax
push 0x6f54d4
jmp 0x496058
xor esi, esi
push ebx
push esi
push dword [0x8032a8]
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
call edi
push dword [esp + 0x18]
push esi
push dword [0x8032a8]
call edi
lea edi, [esp + 0x70]
lea esi, [esp + 0xa0]
mov ecx, 9
mov edx, 4
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x2c
mov al, byte [0x803894]
call fcn.004889b0
test eax, eax
je 0x496133
xor edx, edx
mov edi, eax
lea esi, [esp + 0x70]
mov ecx, 9
inc edx
add edi, 8
mov dword [eax], edx
mov dword [eax + 4], edx
rep movsd dword es:[edi], dword [esi]
cmp dword [eax + 0x10], 0
je 0x49613f
mov edi, dword [eax + 0x20]
mov dword [esp], eax
cmp edi, 1
mov ebp, edi
je 0x495e71
test edi, edi
je 0x4961a7
lea ecx, [edi - 1]
mov ebp, edx
add ebp, ebp
dec ecx
jne 0x495e6c
mov eax, dword [esp]
lock inc dword [eax]
jle 0x496120
mov al, byte [0x803894]
mov ecx, 0x300
mov edx, 4
call fcn.004889b0
test eax, eax
je 0x496150
mov ecx, 0x3f
xor edx, edx
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], 0x40
mov dword [esp + 0x9c], 0
mov dword [eax], 4
mov dword [eax + 4], edx
mov dword [eax + 8], edx
add eax, 0xc
dec ecx
jne 0x495ebd
xor esi, esi
mov dword [eax], 4
lea ecx, [esp + 0x70]
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov eax, dword [esp]
mov dword [ecx + 0xc], 0x40
movsd xmm0, qword [esp + 0x94]
movsd qword [ecx + 4], xmm0
mov dword [ecx], eax
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x14], ebp
mov edi, dword [esp]
mov edx, dword [edi + 0x10]
cmp esi, edx
jae 0x495f90
mov eax, dword [edi + 0x1c]
cmp eax, esi
jbe 0x49603f
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 8]
mov ebx, dword [eax + esi*4]
push ebx
call fcn.004961ff
add esp, 4
test eax, eax
je 0x495f90
mov edi, dword [esp + 0x80]
cmp edi, edx
ja 0x4960ce
lea ecx, [esp + 0x70]
mov edx, eax
push edi
call fcn.004961bb
add esp, 4
mov edx, dword [esp + 0x7c]
mov ecx, eax
and ecx, 0x3f
cmp edx, ecx
jbe 0x49604a
mov edx, dword [esp + 0x74]
lea ecx, [ecx + ecx*2]
mov ebp, eax
lea edi, [edx + ecx*4]
mov edx, dword [edi + 8]
cmp edx, dword [edi + 4]
jne 0x495f7d
mov ecx, edi
call fcn.004f478e
mov edx, dword [edi + 8]
mov eax, dword [edi]
inc esi
mov dword [eax + edx*8], ebp
mov dword [eax + edx*8 + 4], ebx
inc edx
mov dword [edi + 8], edx
jmp 0x495f01
mov eax, dword [esp + 0x48]
movsd xmm0, qword [esp + 0x80]
movsd xmm2, qword [esp + 0x70]
movsd xmm1, qword [esp + 0x78]
test byte [eax + 0x26], 1
movsd qword [esp + 0x60], xmm0
movsd qword [esp + 0x58], xmm1
movsd qword [esp + 0x50], xmm2
jne 0x496005
lock inc dword [edi]
mov esi, dword [esp + 0x44]
jle 0x496120
cmp byte [eax + 0x25], 0
je 0x495fd8
cmp dword [edi + 0x10], 0x41
lock dec dword [edi]
jne 0x495fe4
mov ecx, edi
call fcn.0048914e
lea eax, [esp + 0x50]
mov dword [esi], 0
push eax
call fcn.0048902f
add esp, 4
lock dec dword [edi]
jne 0x496034
mov ecx, edi
call fcn.0048914e
jmp 0x496034
movsd xmm0, qword [esp + 0x60]
mov ecx, dword [esp + 0x44]
movsd xmm2, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x58]
xor eax, eax
movsd qword [ecx + 0x14], xmm0
movsd qword [ecx + 0xc], xmm1
movsd qword [ecx + 4], xmm2
mov dword [ecx], edi
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x2c], eax
add esp, 0xc4
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esi
mov edx, eax
push 0x6f54f4
jmp 0x496058
push 0x6f55f8
jmp 0x496058
mov ecx, esi
push 0x6f54c4
call fcn.006521f0
add esp, 4
ud2
mov ecx, eax
jmp 0x496053
mov ecx, esi
jmp 0x495dd9
lea ecx, [esp + 0x70]
mov edx, 0x7c8c08
jmp 0x496081
lea ecx, [esp + 0x70]
mov edx, 0x7c8c18
xor eax, eax
mov dword [ecx], str.Index_out_of_bounds
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], eax
mov dword [ecx + 8], 0x7f59e0
mov dword [ecx + 0xc], eax
call fcn.00652150
ud2
mov edx, ebx
jmp 0x4960ae
mov ecx, ebx
jmp 0x4960be
mov edx, esi
push 0x7c8c28
call fcn.006524b0
jmp 0x49605d
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
push 0x7c8c28
call fcn.00652260
jmp 0x49605d
mov ecx, edi
push 0x6f55e8
jmp 0x4960c7
mov ecx, str.assertion_failed:_end___start__end___len
mov edx, 0x2c
push 0x7c8c94
jmp 0x4960f7
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_syncmpmclist.rs
mov edx, 0x2b
push 0x7c8c58
call fcn.006522d0
jmp 0x49605d
mov ecx, dword [esp]
mov edx, dword [esp + 0x20]
jmp 0x49612c
call fcn.00498870
ud2
mov ecx, dword [esp]
mov edx, eax
jmp 0x496167
mov ecx, dword [esp + 0x20]
mov edx, ebp
jmp 0x496175
ud2
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x34]
push 0x7c8ca4
jmp 0x4960b3
mov ecx, 4
mov edx, 0x2c
jmp 0x49615a
mov ecx, str.assertion_failed:_patterns.len_____1C:UsersNop.cargo_registry_srcindex.crates.io_1cd66030c949c28d_aho_corasick_1.1.2_srcpacked_rabinkarp.rs
mov edx, 0x25
push 0x6f55a8
jmp 0x4960f7
mov ecx, 4
mov edx, 0x300
call fcn.00651860
ud2
mov eax, edx
mov edx, ecx
mov ecx, eax
push 0x7c8bf8
jmp 0x4960b3
mov edx, dword [esp + 0x10]
push 0x7c8bf8
jmp 0x4960c7
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_syncmpmclist.rs
mov edx, 0x2b
push 0x7c8c38
jmp 0x4960f7
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_syncmpmclist.rs
mov edx, 0x2b
push 0x7c8c48
jmp 0x4960f7
mov ecx, 0x6f55b8
mov edx, 0x1f
push 0x6f55d8
jmp 0x4960f7