Function at 0x4061e0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56115e
mov eax, dword fs:[0]
push eax
sub esp, 0xb4
mov eax, dword [0x5bbd60]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
xor edi, edi
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0xb4], edi
call fcn.00427b27
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x406245
push 0x80004005
call fcn.00405090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], edi
call fcn.00427b27
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x406274
push 0x80004005
call fcn.00405090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0xac], eax
mov byte [ebp - 4], 1
call fcn.00427b27
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x4062a4
push 0x80004005
call fcn.00405090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x94], eax
mov byte [ebp - 4], 2
call fcn.00427b27
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x4062d4
push 0x80004005
call fcn.00405090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x9c], eax
mov byte [ebp - 4], 3
call fcn.00427b27
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x406304
push 0x80004005
call fcn.00405090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x80], eax
mov byte [ebp - 4], 4
call fcn.00427b27
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x406331
push 0x80004005
call fcn.00405090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x8c], eax
mov byte [ebp - 4], 5
call fcn.00427b27
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x406361
push 0x80004005
call fcn.00405090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x90], eax
mov byte [ebp - 4], 6
call fcn.00427b27
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x406391
push 0x80004005
call fcn.00405090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x7c], eax
mov byte [ebp - 4], 7
call fcn.00427b27
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x4063be
push 0x80004005
call fcn.00405090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0xa8], eax
mov byte [ebp - 4], 8
call fcn.00427b27
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x4063ee
push 0x80004005
call fcn.00405090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x84], eax
mov byte [ebp - 4], 9
call fcn.00427b27
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40641e
push 0x80004005
call fcn.00405090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x98], eax
mov byte [ebp - 4], 0xa
call fcn.00427b27
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40644e
push 0x80004005
call fcn.00405090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x78], esi
mov byte [ebp - 4], 0xb
call fcn.00427b27
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40647b
push 0x80004005
call fcn.00405090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0xb8], ebx
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0xa0], edi
jne 0x406695
mov edi, dword [ebp - 0xb0]
push 0x5903c6
mov ecx, edi
call fcn.00404c00
add ebx, 0xfffffff0
mov byte [ebp - 4], 0xb
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4064cf
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
lea eax, [esi - 0x10]
mov byte [ebp - 4], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4064ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x98]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406515
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x84]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40653b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0xa8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406561
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x7c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406584
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x90]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4065aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x8c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4065d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x80]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4065f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x9c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406619
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x94]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40663f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0xac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406665
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xa4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40668e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
jmp 0x407553
mov ecx, dword [ebp - 0xa0]
push 0x593df8
push ecx
call fcn.0052846d
mov esi, eax
add esp, 8
cmp esi, edi
jne 0x4068ae
mov esi, dword [ebp - 0xb0]
push 0x5903c7
mov ecx, esi
call fcn.00404c00
add ebx, 0xfffffff0
mov byte [ebp - 4], 0xb
lea edx, [ebx + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x4066e5
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x78]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406708
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x98]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40672e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x84]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406754
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0xa8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40677a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x7c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40679d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x90]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4067c3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x8c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4067e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x80]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40680c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x9c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406832
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x94]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406858
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0xac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40687e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xa4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4068a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
jmp 0x407553
push 2
push 0
push esi
call fcn.00528555
push esi
call fcn.00528765
push 0
mov edi, eax
push 0
push esi
mov dword [ebp - 0xa0], edi
call fcn.00528555
push edi
call fcn.00529ecd
mov edi, eax
add esp, 0x20
mov dword [ebp - 0xc0], edi
push esi
test edi, edi
jne 0x406af1
call fcn.0052896f
mov esi, dword [ebp - 0xb0]
add esp, 4
push 0x5903cb
mov ecx, esi
call fcn.00404c00
add ebx, 0xfffffff0
mov byte [ebp - 4], 0xb
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406924
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x78]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406947
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x98]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40696d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x84]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406993
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0xa8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4069b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x7c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4069dc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x90]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406a02
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x8c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406a28
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x80]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406a4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x9c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406a71
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x94]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406a97
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0xac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406abd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xa4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4068a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
jmp 0x407553
mov ecx, dword [ebp - 0xa0]
push 1
push ecx
push edi
call fcn.0052a1ab
push esi
call fcn.0052896f
push str.Address
push edi
call fcn.0052a1d0
push str.0001
push eax
call fcn.0052a1d0
add esp, 0x24
nop
push str._____n
push eax
mov ebx, eax
call fcn.0052a1d0
mov edi, eax
mov esi, edi
sub esi, ebx
push esi
lea edx, [ebp - 0x74]
push ebx
push edx
call fcn.0052f500
lea eax, [ebp - 0x74]
add esp, 0x14
mov byte [ebp + esi - 0x74], 0
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x406b50
sub eax, ecx
push eax
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0xa4]
call fcn.00404f50
push 0x593e14
push edi
call fcn.0052a1d0
push 0x593e18
push eax
mov ebx, eax
call fcn.0052a1d0
mov esi, eax
mov edi, esi
sub edi, ebx
push edi
lea ecx, [ebp - 0x74]
push ebx
push ecx
call fcn.0052f500
lea eax, [ebp - 0x74]
add esp, 0x1c
mov byte [ebp + edi - 0x74], 0
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x406ba0
sub eax, ecx
push eax
lea edx, [ebp - 0x74]
push edx
lea ecx, [ebp - 0xac]
call fcn.00404f50
cmp byte [esi], 0x20
jne 0x406bc6
mov edi, edi
inc esi
cmp byte [esi], 0x20
je 0x406bc0
push 0x593e1c
push esi
call fcn.0052a1d0
mov edi, eax
mov ebx, edi
sub ebx, esi
push ebx
lea eax, [ebp - 0x74]
push esi
push eax
call fcn.0052f500
lea eax, [ebp - 0x74]
add esp, 0x14
mov byte [ebp + ebx - 0x74], 0
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x406bf0
sub eax, ecx
push eax
lea ecx, [ebp - 0x74]
push ecx
lea ecx, [ebp - 0x94]
call fcn.00404f50
push 0x593e20
push edi
call fcn.0052a1d0
mov esi, eax
sub esi, edi
push esi
lea edx, [ebp - 0x74]
push edi
push edx
mov dword [ebp - 0xa0], eax
call fcn.0052f500
lea eax, [ebp - 0x74]
push 0x20
push eax
mov byte [ebp + esi - 0x74], 0
call fcn.0052a260
add esp, 0x1c
test eax, eax
jne 0x406c44
xor ecx, ecx
jmp 0x406c59
mov ecx, eax
lea esi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x406c50
sub ecx, esi
push ecx
push eax
lea ecx, [ebp - 0x9c]
call fcn.00404f50
mov ebx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xbc]
mov eax, 8
mov edx, ebx
lea esp, [esp]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x406c96
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x406c80
jmp 0x406cce
movzx eax, byte [edx]
movzx esi, byte [ecx]
sub eax, esi
jne 0x406cc2
movzx eax, byte [edx + 1]
movzx esi, byte [ecx + 1]
sub eax, esi
jne 0x406cc2
movzx eax, byte [edx + 2]
movzx esi, byte [ecx + 2]
sub eax, esi
jne 0x406cc2
movzx eax, byte [edx + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
sar eax, 0x1f
or eax, 1
jg 0x406e6e
mov ecx, dword [ebp - 0xa4]
mov esi, dword [ebp - 0x80]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x406d2c
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x406d1f
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x406d1f
push eax
call fcn.00404ce0
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x406d11
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x80], ebx
mov ebx, dword [ebp - 0x94]
jmp 0x406d2c
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x80]
call fcn.00404f50
mov ecx, dword [ebp - 0xac]
mov esi, dword [ebp - 0x8c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x406d93
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x406d83
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x406d83
push eax
call fcn.00404ce0
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x406d72
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x8c], ebx
mov ebx, dword [ebp - 0x94]
jmp 0x406d93
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x8c]
call fcn.00404f50
mov esi, dword [ebp - 0x90]
lea eax, [ebx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x406dee
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x406dde
mov ecx, dword [eax]
cmp ecx, dword [esi]
jne 0x406dde
push eax
call fcn.00404ce0
add esp, 4
mov ebx, eax
or edx, 0xffffffff
lock xadd dword [edi], edx
dec edx
test edx, edx
jg 0x406dd3
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add ebx, 0x10
mov dword [ebp - 0x90], ebx
jmp 0x406dee
mov eax, dword [ebx - 0xc]
push eax
push ebx
lea ecx, [ebp - 0x90]
call fcn.00404f50
mov ecx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x7c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x406e46
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x406e39
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x406e39
push eax
call fcn.00404ce0
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x406e31
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x7c], ebx
jmp 0x406e46
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.00404f50
mov ecx, dword [ebp - 0xa0]
push 0x593e24
push ecx
call fcn.0052a1d0
add esp, 8
cmp byte [eax], 0x20
jne 0x406b20
inc eax
cmp byte [eax], 0x20
je 0x406e63
jmp 0x406b20
mov edi, dword [ebp - 0x7c]
cmp dword [edi - 0xc], 0
jl 0x407323
push 0x593e28
push edi
call fcn.0052abbe
add esp, 8
test eax, eax
je 0x407323
sub eax, edi
test eax, eax
jle 0x407323
push eax
lea edx, [ebp - 0x88]
push edx
lea ecx, [ebp - 0x7c]
call fcn.004034b0
push str..cpp
push eax
lea eax, [ebp - 0xb4]
mov bl, 0xd
push eax
mov byte [ebp - 4], bl
call fcn.00404850
add esp, 0xc
push eax
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0xe
call fcn.00404960
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0xb4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406ef7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x88]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406f1d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x7c]
call fcn.00407660
mov esi, dword [ebp - 0x7c]
cmp dword [esi - 4], 1
jle 0x406f3d
mov ecx, dword [esi - 0xc]
push ecx
lea ecx, [ebp - 0x7c]
call fcn.00404db0
mov esi, dword [ebp - 0x7c]
mov eax, dword [esi - 8]
push eax
push esi
call fcn.0052a28d
add esp, 8
test eax, eax
js 0x407319
cmp eax, dword [esi - 8]
jg 0x407319
mov edx, dword [ebp - 0xa0]
push esi
mov dword [esi - 0xc], eax
push edx
mov byte [eax + esi], 0
call fcn.0052a1d0
mov edi, dword [ebp - 0x80]
push edi
push eax
call fcn.0052a1d0
push 0x10
mov esi, eax
mov eax, dword [ebp - 0x90]
push 0
push eax
call fcn.0052a500
mov ecx, dword [ebp - 0xbc]
push 0x10
push 0
push ecx
mov dword [ebp - 0xb4], eax
call fcn.0052a500
add esp, 0x28
cmp dword [edi - 0xc], 0
mov ebx, eax
jge 0x406fb1
or edi, 0xffffffff
jmp 0x406fcc
push 0x593e38
push edi
call fcn.0052abbe
add esp, 8
test eax, eax
jne 0x406fc8
or edi, 0xffffffff
jmp 0x406fcc
sub eax, edi
mov edi, eax
push edi
lea edx, [ebp - 0x88]
push edx
lea ecx, [ebp - 0x80]
call fcn.004034b0
push eax
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0xf
call fcn.00404960
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x88]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407012
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc edi
push edi
lea ecx, [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x80]
call fcn.00407780
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x10
call fcn.00404960
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x88]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407059
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x84]
push 0x10
push 0
push ecx
call fcn.0052a500
sub ebx, dword [ebp - 0xb4]
lea edx, [ebp - 0x84]
add eax, ebx
push eax
push str._08x
push edx
call fcn.004079e0
add esp, 0x18
push 0x593e44
push esi
mov ebx, esi
call fcn.0052a1d0
mov esi, eax
mov edi, esi
sub edi, ebx
push edi
lea eax, [ebp - 0x74]
push ebx
push eax
call fcn.0052f500
add esp, 0x14
lea ecx, [ebp - 0x74]
push ecx
lea ecx, [ebp - 0x98]
mov byte [ebp + edi - 0x74], 0
call fcn.00405030
mov ecx, dword [ebp - 0x84]
inc esi
mov eax, 8
mov edx, esi
lea esp, [esp]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x4072cd
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x4070d0
push 0x593e48
lea ecx, [ebp - 0xa8]
push ecx
lea edx, [ebp - 0xb4]
push edx
call fcn.00404850
lea ecx, [ebp - 0x84]
push ecx
push eax
lea edx, [ebp - 0x88]
push edx
mov byte [ebp - 4], 0x11
call fcn.00403530
add esp, 0x18
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x12
call fcn.00404960
lea ecx, [ebp - 0x88]
call fcn.00405070
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 0xc
call fcn.00405070
lea eax, [ebp - 0x78]
push 0x5903e2
push eax
call fcn.00407930
add esp, 8
test al, al
je 0x407169
lea ecx, [ebp - 0x98]
push ecx
lea ecx, [ebp - 0x78]
call fcn.00404960
lea ecx, [ebp - 0x78]
call fcn.004075e0
push 0x20
lea ecx, [ebp - 0x78]
call fcn.004075b0
push eax
lea edx, [ebp - 0x88]
push edx
lea ecx, [ebp - 0x78]
call fcn.004034b0
push eax
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x13
call fcn.00404960
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xc
call fcn.00405070
lea ecx, [ebp - 0x78]
call fcn.004075e0
push 0x20
lea ecx, [ebp - 0x78]
call fcn.004075b0
push eax
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x78]
call fcn.00407780
push eax
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x14
call fcn.00404960
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xc
call fcn.00405070
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x7c]
push ecx
mov ecx, dword [ebp - 0xbc]
push edx
mov edx, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x80]
push ecx
push edx
push eax
lea ecx, [ebp - 0xb8]
push str.Exception_Address:_s__s_0x_s__nFile:_s__nFunction:_s__nLines:_s
push ecx
call fcn.004079e0
mov edx, dword [ebp - 0xc0]
push edx
call fcn.0052a80e
mov eax, dword [ebp - 0xb8]
add eax, 0xfffffff0
push eax
call fcn.00404ce0
mov esi, dword [ebp - 0xb0]
add eax, 0x10
add esp, 0x28
lea ecx, [ebp - 0xb8]
mov dword [esi], eax
call fcn.00405070
lea ecx, [ebp - 0x78]
call fcn.00405070
lea ecx, [ebp - 0x98]
call fcn.00405070
lea ecx, [ebp - 0x84]
call fcn.00405070
lea ecx, [ebp - 0xa8]
call fcn.00405070
lea ecx, [ebp - 0x7c]
call fcn.00405070
lea ecx, [ebp - 0x90]
call fcn.00405070
lea ecx, [ebp - 0x8c]
call fcn.00405070
lea ecx, [ebp - 0x80]
call fcn.00405070
lea ecx, [ebp - 0x9c]
call fcn.00405070
lea ecx, [ebp - 0x94]
call fcn.00405070
lea ecx, [ebp - 0xac]
call fcn.00405070
lea ecx, [ebp - 0xa4]
call fcn.00405070
mov eax, esi
jmp 0x407553
movzx eax, byte [edx]
movzx edi, byte [ecx]
sub eax, edi
jne 0x4072f9
movzx eax, byte [edx + 1]
movzx edi, byte [ecx + 1]
sub eax, edi
jne 0x4072f9
movzx eax, byte [edx + 2]
movzx edi, byte [ecx + 2]
sub eax, edi
jne 0x4072f9
movzx eax, byte [edx + 3]
movzx edx, byte [ecx + 3]
sub eax, edx
sar eax, 0x1f
or eax, 1
jge 0x4070e8
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x78]
call fcn.00404960
jmp 0x407086
push 0x80070057
call fcn.00405090
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0xbc]
mov ebx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x80]
push ecx
push edi
push edx
push ebx
push eax
lea ecx, [ebp - 0xb8]
push str.Exception_Address:_s__s_0x_s__nFile:_s__nFunction:_s
push ecx
call fcn.004079e0
mov edx, dword [ebp - 0xc0]
push edx
call fcn.0052a80e
mov esi, dword [ebp - 0xb8]
add esi, 0xfffffff0
push esi
call fcn.00404ce0
mov ecx, dword [ebp - 0xb0]
add eax, 0x10
mov dword [ecx], eax
add esp, 0x24
mov byte [ebp - 4], 0xb
lea edx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x407394
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x78]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4073b7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x98]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4073dd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4073fd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0xa8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407423
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407443
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x90]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407469
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x8c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40748f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x80]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4074b2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x9c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4074d8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x94]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4074fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0xac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407524
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xa4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40754d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00527d0f
mov esp, ebp
pop ebp
ret