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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2dc
mov edi, dword [esp + 0x2f4]
cmp byte [esp + 0x2f0], 0
mov ebx, edx
mov esi, ecx
je 0x406bd5
lea eax, [edi + 0x48]
lea ecx, [esp + 0x1dd]
push 0xff
push eax
push ecx
call fcn.007bd9b0
add esp, 0xc
movzx eax, byte [edi + 0x147]
mov edi, dword [edi + 8]
test bl, bl
mov dword [esp + 0x50], esi
je 0x406cf9
mov ebp, ebx
jmp 0x406d10
movaps xmm0, xmmword [0x7d4330]
movaps xmm1, xmmword [0x7d4340]
movaps xmm2, xmmword [str._________._0123456789:_____ABCDEFGHIJKLMNOPQRSTUVWXYZ____abcdefghijklmnopqrstuvwxyz]
lea eax, [esp + 0x80]
lea ecx, [esp + 0x1dd]
movups xmmword [esp + 0x80], xmm0
movups xmmword [esp + 0x90], xmm1
movaps xmm1, xmmword [0x7d4360]
movups xmmword [esp + 0xa0], xmm2
movaps xmm2, xmmword [0x7d4370]
movups xmmword [esp + 0xb0], xmm1
movaps xmm1, xmmword [0x7d4380]
movups xmmword [esp + 0xc0], xmm2
movaps xmm2, xmmword [0x7d4390]
movups xmmword [esp + 0xd0], xmm1
movaps xmm1, xmmword [0x7d43a0]
movups xmmword [esp + 0xe0], xmm2
movaps xmm2, xmmword [0x7d43b0]
movups xmmword [esp + 0xf0], xmm1
movaps xmm1, xmmword [0x7d43c0]
movups xmmword [esp + 0x100], xmm2
movaps xmm2, xmmword [0x7d43d0]
movups xmmword [esp + 0x110], xmm1
movaps xmm1, xmmword [0x7d43e0]
movups xmmword [esp + 0x120], xmm2
movaps xmm2, xmmword [0x7d43f0]
movups xmmword [esp + 0x130], xmm1
movaps xmm1, xmmword [0x7d4400]
movups xmmword [esp + 0x140], xmm2
movaps xmm2, xmmword [0x7d4410]
movups xmmword [esp + 0x150], xmm1
movaps xmm1, xmmword [0x7d4420]
movups xmmword [esp + 0x160], xmm2
movups xmmword [esp + 0x170], xmm1
push 0xff
push eax
push ecx
call fcn.007bd9b0
add esp, 0xc
movzx eax, byte [esp + 0x17f]
mov edi, dword [edi + 8]
test bl, bl
mov dword [esp + 0x50], esi
jne 0x406bce
test edi, edi
js 0x407c65
cmp edi, 1
jbe 0x407c6f
mov ebp, ebx
lea edi, [edi + edi - 4]
movzx esi, al
mov ebx, eax
mov eax, 0xffffffff
mov dword [esp + 0x18], edi
bsr ecx, esi
mov byte [esp + 4], bl
not ecx
shr eax, cl
lea ecx, [eax + 1]
not eax
tzcnt edx, ecx
and eax, ecx
xor ecx, ecx
test bl, bl
mov ebx, 1
cmovne ecx, edx
cmovne ebx, eax
mov dword [esp + 0x24], ecx
shl edi, cl
mov eax, edi
sub eax, ebx
jb 0x407c0d
cmp eax, 0x7ffffffe
jbe 0x406d8b
mov ecx, dword [esp + 0x50]
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x7ffffffe
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], 0
mov dword [ecx], 1
jmp 0x4072ab
mov eax, dword [esp + 0x2f4]
mov ebx, ebp
test bl, bl
mov ebp, dword [eax + 0x154]
je 0x406da9
test ebp, ebp
je 0x407c79
dec ebp
jmp 0x406dbe
test ebp, ebp
je 0x407c9d
mov eax, ebp
dec eax
js 0x407ca7
lea ebp, [ebp + ebp - 2]
mov edx, 4
test edi, edi
mov dword [esp], 4
mov dword [esp + 0x1c], ebp
je 0x406e34
cmp edi, 0x1fffffff
ja 0x407c08
lea ebp, [edi*4]
test ebp, ebp
js 0x407c08
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, ebp
call fcn.0071ee80
test eax, eax
je 0x407c83
cmp edi, 2
mov ecx, eax
mov dword [esp], eax
jb 0x406e25
lea ecx, [ebp - 4]
push ecx
push 0
push eax
call fcn.007bdf30
add esp, 0xc
mov eax, dword [esp]
lea ecx, [eax + ebp - 4]
mov ebp, dword [esp + 0x1c]
mov edx, 4
mov dword [ecx], 0
test ebp, ebp
mov dword [esp + 8], esi
je 0x406ebe
cmp ebp, 0xaaaaaaa
ja 0x407c08
lea eax, [ebp*4]
mov esi, ebx
lea ebx, [eax + eax*2]
test ebx, ebx
js 0x407c08
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, ebx
call fcn.0071ee80
test eax, eax
je 0x407c33
mov edx, eax
cmp ebp, 2
mov ebx, esi
jb 0x406eaa
lea ecx, [ebp - 1]
mov eax, edx
nop word cs:[eax + eax]
mov dword [eax], 0
mov dword [eax + 4], 4
mov dword [eax + 8], 0
add eax, 0xc
dec ecx
jne 0x406e90
mov dword [eax], 0
mov dword [eax + 4], 4
mov dword [eax + 8], 0
mov eax, dword [esp + 0x2f4]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x3c], edx
mov esi, dword [eax + 0x38]
mov ecx, dword [eax + 0x34]
test esi, esi
je 0x406f14
cmp esi, 0x1fffffff
ja 0x407c08
lea ebx, [esi*4]
mov dword [esp + 0x38], ecx
test ebx, ebx
js 0x407c08
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, ebx
call fcn.0071ee80
test eax, eax
je 0x407c33
mov ecx, dword [esp + 0x38]
jmp 0x406f1b
mov eax, 4
xor ebx, ebx
push ebx
push ecx
mov dword [esp + 0x40], eax
push eax
call fcn.007bd9b0
add esp, 0xc
mov eax, dword [esp + 0x2f4]
mov ebx, dword [eax + 0x3c]
test ebx, ebx
je 0x406f51
mov ecx, dword [eax + 0x40]
mov dword [esp + 0x10], ecx
lock inc dword [ebx]
jle 0x407c8f
mov ecx, dword [eax + 0x44]
mov dword [esp + 0x30], ecx
jmp 0x406f51
movzx eax, byte [eax + 0x160]
mov ebp, dword [esp + 8]
lea ecx, [esp + 0x1dd]
mov byte [esp + 0x14], al
lea eax, [esp + 0xc0]
inc ebp
push 0xff
push ecx
push eax
call fcn.007bd9b0
add esp, 0xc
mov eax, dword [esp]
mov dword [esp + 0x80], edi
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x2f4]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xa4], 0
mov dword [esp + 0x98], esi
movsd xmm0, qword [edi + 0x148]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xb0], eax
movzx eax, byte [esp + 0x14]
mov byte [esp + 0x1d8], al
mov eax, dword [esp + 0x18]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xbc], eax
movzx eax, byte [esp + 4]
mov byte [esp + 0x1bf], al
mov eax, dword [esp + 0x28]
movsd qword [esp + 0x1c0], xmm0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x1d0], 0
cmp al, 2
je 0x407088
movzx eax, al
cmp eax, 1
jne 0x4070e6
lea eax, [esp + 0x80]
xor ecx, ecx
jmp 0x407094
lea eax, [esp + 0x80]
mov ecx, 1
mov edx, edi
push eax
call fcn.0040fbe0
add esp, 4
mov edi, dword [esp + 0x88]
cmp dword [esp + 0x80], edi
jbe 0x4071c7
mov eax, dword [esp + 0x84]
test edi, edi
je 0x4071a5
lea esi, [edi*4]
push esi
push eax
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapReAlloc]
test eax, eax
jne 0x4071b9
jmp 0x40725a
mov eax, 1
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x34], 1
shl eax, cl
mov ecx, dword [edi + 4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [edi + 8]
test ecx, ecx
mov dword [esp + 4], ecx
je 0x4072b6
cmp ecx, 0x1fffffff
ja 0x407c08
lea edi, [ecx*4]
test edi, edi
js 0x407c08
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, edi
call fcn.0071ee80
test eax, eax
mov dword [esp + 0x10], eax
je 0x407c91
cmp dword [esp + 4], 2
jb 0x4072d0
lea esi, [edi - 4]
push esi
push 0
mov ebx, dword [esp + 0x18]
push ebx
call fcn.007bdf30
add esp, 0xc
mov dword [ebx + edi - 4], 0
xor ecx, ecx
mov edx, edi
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
mov dword [esp + 0x14], eax
je 0x407c91
push esi
push 0
mov edi, dword [esp + 0x1c]
push edi
call fcn.007bdf30
add esp, 0xc
mov eax, edi
add eax, esi
jmp 0x4072fe
push eax
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, 4
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0xa0]
cmp dword [esp + 0x98], edi
jbe 0x407221
mov eax, dword [esp + 0x9c]
test edi, edi
je 0x4071ff
lea esi, [edi*4]
push esi
push eax
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapReAlloc]
test eax, eax
jne 0x407213
jmp 0x40725a
push eax
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, 4
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], edi
mov edi, dword [esp + 0x94]
cmp dword [esp + 0x8c], edi
jbe 0x407288
mov eax, dword [esp + 0x90]
test edi, edi
je 0x407266
lea ecx, [edi*4]
lea esi, [ecx + ecx*2]
push esi
push eax
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapReAlloc]
test eax, eax
jne 0x40727a
mov ecx, 4
mov edx, esi
call fcn.007c1490
push eax
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, 4
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], edi
mov esi, dword [esp + 0x50]
lea ecx, [esp + 0x80]
lea eax, [esi + 4]
push 0x15c
push ecx
push eax
call fcn.007bd9b0
add esp, 0xc
mov dword [esi], 0
add esp, 0x2dc
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x10], 4
mov dword [esp + 0x14], 4
mov esi, dword [esp + 0x18]
test esi, esi
jne 0x407317
jmp 0x40733d
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov edx, 4
mov edi, 4
mov dword [eax], 0
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
mov dword [esp + 0x14], eax
je 0x407c91
mov edi, dword [esp + 0x2f4]
mov ecx, dword [esp + 4]
mov dword [eax], 0
mov esi, dword [esp + 0x18]
test esi, esi
je 0x40733d
js 0x407c08
mov esi, dword [esp + 0x18]
mov ecx, 8
mov edx, esi
call fcn.0071ee80
mov ecx, dword [esp + 4]
test eax, eax
mov dword [esp + 0x34], eax
je 0x407cb1
test ecx, ecx
je 0x407991
mov edx, dword [esp + 0x1c]
lea eax, [ecx + ecx*4]
mov esi, dword [edi + 0x10]
mov dword [esp], 0
lea eax, [edx + eax*4]
mov dword [esp + 0x68], eax
mov eax, dword [edi + 0x158]
mov dword [esp + 0x64], eax
mov eax, dword [edi + 0x15c]
mov dword [esp + 0x60], eax
mov eax, edi
mov edi, dword [edi + 0x14]
mov ebx, dword [eax + 0x1c]
mov edx, dword [eax + 0x20]
mov ebp, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x40], eax
xor eax, eax
lea ebp, [esp + 0x80]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], ebx
jmp 0x4073d4
mov ebx, dword [esp]
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0xc]
lea ebp, [esp + 0x80]
mov edx, dword [esp + 0x2c]
add ebx, dword [esp + 0x20]
inc eax
add edx, 0x14
mov dword [esp], ebx
cmp edx, dword [esp + 0x68]
mov dword [esp + 0x2c], edx
je 0x407983
cmp eax, ecx
je 0x407c3f
cmp eax, 2
mov edx, eax
mov dword [esp + 0xc], eax
jae 0x407410
mov ebx, dword [esp]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [eax + edx*4], ebx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov dword [eax + edx*4], ebx
mov eax, dword [esp + 0xc]
jmp 0x4073b7
mov ecx, dword [esp + 0x64]
cmp eax, ecx
je 0x407505
cmp eax, dword [esp + 0x60]
je 0x407505
mov ebx, dword [esp]
mov ecx, eax
mov eax, dword [esp + 0x20]
lea edx, [ebx + eax]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], edx
mov dword [eax + ecx*4], ebx
mov eax, dword [esp + 0x14]
mov dword [eax + ecx*4], edx
mov eax, edx
mov ecx, dword [esp + 0x24]
shr eax, cl
cmp eax, dword [esp + 0x18]
jae 0x407bc0
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
mov byte [ecx + eax], 1
mov ecx, dword [esp + 0x2c]
cmp dword [ecx + 8], 0
lea ecx, [esp + 0x80]
je 0x4074c9
lea eax, [edx + edx*4]
mov edx, dword [esp]
mov dword [esp + 8], eax
push dword [ebp + eax*4 + 8]
push dword [esp + 0x44]
mov ebx, dword [esp + 0x54]
push ebx
call fcn.0040fae0
add esp, 0xc
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 8]
lea ecx, [esp + 0x80]
push dword [ebp + eax*4 + 8]
push dword [esp + 0x44]
push ebx
call fcn.0040fae0
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x8c]
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x2f4]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x54]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
lea eax, [esp + 0x58]
mov dword [esp + 0x7c], eax
lea eax, [edx + edx*4]
mov ecx, dword [ebp + eax*4]
test ecx, ecx
je 0x4078eb
xor edx, edx
xor ebx, ebx
jmp 0x40755f
cmp eax, ecx
jne 0x4076ea
mov eax, dword [esp + 0x10]
mov edx, dword [esp]
mov dword [eax + ecx*4], edx
mov edx, dword [esp + 0x14]
mov dword [edx + ecx*4], 0
jmp 0x40771b
movzx eax, dl
mov byte [esp], dl
movzx edx, byte [esp + 0x44]
lea ecx, [esp + 0x6c]
push dword [esp + 0x48]
push eax
call fcn.0040f950
add esp, 8
movzx ecx, byte [esp]
mov al, 1
mov byte [esp], cl
mov ecx, dword [esp + 0x30]
mov edx, eax
mov eax, dword [esp + 0xc]
inc ebx
test ecx, ecx
je 0x40796b
cmp ecx, edi
jae 0x407977
lea eax, [ecx + ecx*8]
mov ecx, dword [esi + eax + 5]
mov dword [esp + 0x30], ecx
movzx ecx, byte [esi + eax]
mov eax, dword [esi + eax + 1]
movzx ebp, cl
mov byte [esp + 0x44], cl
movzx ecx, byte [esp]
mov dword [esp + 0x48], eax
mov eax, edx
cmp ebx, ebp
mov dword [esp + 0x28], ebp
jb 0x4075b9
movzx edx, byte [esp + ebp + 0xc0]
test al, 1
jne 0x4076dd
jmp 0x407527
inc ebx
cmp ebx, ebp
je 0x4076cb
movzx edx, bl
test al, 1
mov dword [esp], edx
movzx edx, byte [esp + edx + 0xc0]
je 0x4075cf
cmp cl, dl
je 0x4075b0
mov eax, dword [esp + 0x2c]
mov byte [esp + 8], dl
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x407697
cmp dword [esp + 4], ecx
jbe 0x407b52
mov eax, dword [esp + 0x1c]
jmp 0x407612
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + ebp*4 + 0xc]
cmp dword [esp + 4], ecx
jbe 0x407b52
lea ebp, [ecx + ecx*4]
mov ecx, dword [eax + ebp*4 + 4]
test ecx, ecx
je 0x407650
mov eax, dword [esp + 0x2f4]
mov edx, dword [esp]
movzx eax, byte [eax + edx + 0x48]
add ecx, eax
cmp ecx, dword [esp + 0x3c]
jae 0x407b70
mov eax, dword [esp + 0x38]
lea ecx, [eax + ecx*4]
mov eax, dword [ecx]
cmp eax, 1
je 0x407600
jmp 0x407699
lea eax, [eax + ebp*4]
nop word cs:[eax + eax]
nop dword [eax]
mov ecx, dword [eax]
test ecx, ecx
je 0x407600
cmp ecx, edi
jae 0x407977
lea ecx, [ecx + ecx*8]
mov edx, ebx
movzx ebx, byte [esi + ecx]
lea eax, [esi + ecx + 5]
cmp bl, dl
mov ebx, edx
jb 0x407660
jne 0x407600
add ecx, esi
inc ecx
mov eax, dword [ecx]
cmp eax, 1
je 0x407600
jmp 0x407699
xor eax, eax
movzx ecx, byte [esp + 8]
mov edx, dword [esp + 0x88]
add ecx, dword [esp + 0x54]
cmp ecx, edx
jae 0x407ba6
mov edx, dword [esp + 0x84]
mov ebp, dword [esp + 0x28]
mov dword [edx + ecx*4], eax
movzx ecx, byte [esp + 8]
mov al, 1
jmp 0x4075b0
mov ebx, ebp
movzx edx, byte [esp + ebp + 0xc0]
test al, 1
je 0x407527
cmp cl, dl
je 0x407549
jmp 0x407527
mov edx, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp]
mov dword [eax + edx*4], 0
mov eax, dword [esp + 0x14]
mov dword [eax + edx*4], ecx
mov eax, ecx
mov ecx, dword [esp + 0x24]
shr eax, cl
cmp eax, dword [esp + 0x18]
jae 0x407bd0
mov ecx, dword [esp + 0x34]
mov byte [ecx + eax], 1
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x1c]
cmp dword [eax + 8], 0
mov eax, dword [esp + 0xc]
je 0x407751
mov eax, dword [esp + 0xc]
mov edx, dword [esp]
mov ecx, ebp
lea eax, [eax + eax*4]
push dword [ebx + eax*4 + 8]
push dword [esp + 0x44]
push dword [esp + 0x54]
call fcn.0040fae0
mov eax, dword [esp + 0x18]
add esp, 0xc
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x88]
mov ecx, dword [ebx + eax*4]
mov ebx, dword [esp + 0x84]
mov dword [esp + 8], edx
test ecx, ecx
mov dword [esp + 0x28], ebx
je 0x407889
xor eax, eax
xor ebx, ebx
jmp 0x4077ad
cmp eax, dword [esp + 8]
jae 0x407bb0
mov edx, dword [esp + 0x28]
mov cl, ch
mov dword [edx + eax*4], ebp
lea ebp, [esp + 0x80]
mov al, 1
mov byte [esp + 0x30], cl
mov ecx, dword [esp + 0x48]
inc ebx
test ecx, ecx
je 0x407870
cmp ecx, edi
jae 0x407977
lea edx, [ecx + ecx*8]
mov ecx, dword [esi + edx + 1]
movzx ebp, byte [esi + edx]
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + edx + 5]
cmp ebx, ebp
mov dword [esp + 0x48], ecx
movzx ecx, byte [esp + 0x30]
jb 0x4077f5
mov ch, byte [esp + ebp + 0xc0]
test al, 1
lea ebp, [esp + 0x80]
jne 0x407844
jmp 0x40784c
inc ebx
cmp ebp, ebx
je 0x407830
movzx edx, bl
test al, 1
movzx edx, byte [esp + edx + 0xc0]
je 0x407808
cmp cl, dl
je 0x4077f0
movzx eax, dl
add eax, dword [esp]
cmp eax, dword [esp + 8]
jae 0x407b60
mov ecx, dword [esp + 0x28]
mov dword [ecx + eax*4], 0
mov al, 1
mov ecx, edx
jmp 0x4077f0
mov ebx, ebp
mov ch, byte [esp + ebp + 0xc0]
test al, 1
lea ebp, [esp + 0x80]
je 0x40784c
cmp cl, ch
je 0x40779c
movzx eax, ch
mov ebp, dword [esp + 0x44]
add eax, dword [esp]
cmp ebp, 1
jne 0x407780
xor ebp, ebp
cmp eax, dword [esp + 8]
jb 0x40778a
jmp 0x407b60
movzx ecx, byte [esp + 0x30]
cmp ebx, 0xff
jbe 0x407890
mov ebx, dword [esp]
mov ecx, dword [esp + 4]
jmp 0x407400
xor eax, eax
xor ebx, ebx
nop dword [eax]
lea ebp, [ebx + 1]
cmp ebx, 0xff
mov edx, 0xff
cmovae ebp, edx
movzx edx, byte [esp + ebx + 0xc0]
test al, 1
je 0x4078b1
cmp cl, dl
je 0x4078d0
movzx ecx, dl
add ecx, dword [esp]
cmp ecx, dword [esp + 8]
jae 0x407b62
mov eax, dword [esp + 0x28]
mov dword [eax + ecx*4], 0
mov al, 1
mov ecx, edx
cmp ebx, 0xfe
ja 0x4073a5
cmp ebp, 0xff
mov ebx, ebp
jbe 0x407890
jmp 0x4073a5
mov eax, dword [esp + 0xc]
xor ecx, ecx
xor ebx, ebx
nop word cs:[eax + eax]
nop dword [eax]
lea ebp, [ebx + 1]
cmp ebx, 0xff
mov edx, ebx
mov ebx, 0xff
cmovae ebp, ebx
mov ebx, edx
mov dh, byte [esp + edx + 0xc0]
mov dl, byte [esp]
test cl, 1
je 0x407928
cmp dl, dh
je 0x407949
movzx eax, dh
mov byte [esp], dh
lea ecx, [esp + 0x6c]
mov edx, ebx
push 1
push eax
call fcn.0040f950
mov eax, dword [esp + 0x14]
add esp, 8
movzx edx, byte [esp]
mov cl, 1
cmp ebx, 0xfe
mov byte [esp], dl
ja 0x40795e
cmp ebp, 0xff
mov ebx, ebp
jbe 0x407900
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x5c]
jmp 0x4073b0
cmp ebx, 0xff
mov ecx, edx
jbe 0x407900
jmp 0x40795e
mov edx, edi
push 0x8a80b8
call fcn.007c1be0
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0x2f4]
test esi, esi
je 0x407a92
mov eax, dword [esp + 0x20]
xor ebp, ebp
lea eax, [eax*4]
mov dword [esp], eax
jmp 0x4079b9
inc ebp
cmp ebp, esi
je 0x407a92
mov eax, ebp
mov ecx, dword [esp + 0x24]
shl eax, cl
mov ecx, dword [esp + 0x18]
cmp ebp, ecx
je 0x407b9a
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x88]
cmp byte [ecx + ebp], 0
mov edi, edx
je 0x407a30
sub edi, eax
jb 0x407c17
cmp dword [esp + 0x20], edi
ja 0x407c23
cmp dword [esp + 0x24], 0x1d
mov edi, dword [esp + 0x2f4]
ja 0x4079b0
shl eax, 2
mov edx, dword [esp]
add eax, dword [esp + 0x84]
nop dword [eax]
mov ecx, dword [eax]
cmp ecx, dword [esp + 4]
jae 0x407b7e
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebx + ecx*4]
mov dword [eax], ecx
add eax, 4
add edx, 0xfffffffc
jne 0x407a10
jmp 0x4079b0
sub edi, eax
jb 0x407c49
cmp dword [esp + 0x20], edi
ja 0x407c55
cmp dword [esp + 0x24], 0x1d
mov edi, dword [esp + 0x2f4]
ja 0x4079b0
shl eax, 2
mov edx, dword [esp]
add eax, dword [esp + 0x84]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ecx, dword [eax]
cmp ecx, dword [esp + 4]
jae 0x407b8c
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + ecx*4]
mov dword [eax], ecx
add eax, 4
add edx, 0xfffffffc
jne 0x407a70
jmp 0x4079b0
mov ecx, dword [edi + 0x150]
mov edx, dword [esp + 4]
cmp ecx, edx
jae 0x407be0
mov esi, dword [esp + 0x14]
mov eax, dword [esi + ecx*4]
mov ecx, dword [edi + 0x154]
cmp ecx, edx
mov dword [esp + 0x1c8], eax
jae 0x407bea
mov eax, dword [esi + ecx*4]
mov ecx, dword [edi + 0x158]
cmp ecx, edx
mov dword [esp + 0x1cc], eax
jae 0x407bf4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + ecx*4]
mov ecx, dword [edi + 0x15c]
cmp ecx, edx
mov dword [esp + 0x1d0], eax
jae 0x407bfe
mov eax, dword [esi + ecx*4]
cmp dword [esp + 0x18], 0
mov dword [esp + 0x1d4], eax
je 0x407b17
push dword [esp + 0x34]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
push dword [esp + 0x14]
push 0
push dword [0x94bf18]
call esi
push dword [esp + 0x10]
push 0
push dword [0x94bf18]
call esi
mov edi, dword [esp + 0x88]
cmp dword [esp + 0x80], edi
ja 0x4070b3
jmp 0x4071c7
mov edx, dword [esp + 4]
push 0x8a80d8
call fcn.007c1be0
mov ecx, eax
mov edx, dword [esp + 8]
push 0x7d600c
call fcn.007c1be0
mov edx, dword [esp + 0x3c]
push 0x8a80e8
call fcn.007c1be0
mov edx, dword [esp + 4]
push 0x7d5fcc
call fcn.007c1be0
mov edx, dword [esp + 4]
push 0x7d5f9c
call fcn.007c1be0
mov edx, ecx
push 0x7d5f7c
call fcn.007c1be0
push 0x7d602c
call fcn.007c1be0
mov edx, dword [esp + 8]
mov ecx, eax
push 0x7d601c
call fcn.007c1be0
mov edx, dword [esp + 0x18]
mov ecx, eax
push 0x7d5fec
call fcn.007c1be0
mov edx, dword [esp + 0x18]
mov ecx, eax
push 0x7d5ffc
call fcn.007c1be0
push 0x7d5f3c
call fcn.007c1be0
push 0x7d5f4c
call fcn.007c1be0
push 0x7d5f5c
call fcn.007c1be0
push 0x7d5f6c
call fcn.007c1be0
call fcn.00418cb0
mov ecx, 0x7d5eec
call fcn.007c1fe0
mov ecx, eax
push 0x7d5fdc
call fcn.007c1b80
mov ecx, dword [esp + 0x20]
mov edx, edi
push 0x7d5fbc
call fcn.007c1c40
mov ecx, 4
mov edx, ebx
call fcn.007c1490
mov ecx, 0x7d7178
call fcn.007c1fe0
mov ecx, eax
push 0x7d5fac
call fcn.007c1b80
mov ecx, dword [esp + 0x20]
mov edx, edi
push 0x7d5f8c
call fcn.007c1c40
mov ecx, 0x7d5ecc
call fcn.007c1fe0
mov ecx, 0x7d5edc
call fcn.007c1fe0
mov ecx, 0x7d5f1c
call fcn.007c1fe0
mov ecx, 4
mov edx, ebp
call fcn.007c1490
ud2
mov ecx, 4
mov edx, edi
call fcn.007c1490
mov ecx, 0x7d5efc
call fcn.007c1fe0
mov ecx, 0x7d5f0c
call fcn.007c1fe0
mov ecx, 1
mov edx, esi
call fcn.007c1490
int3