Function at 0x40bc10
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x37c
mov eax, dword [ebp + 8]
mov dword [ebp - 0x324], 0x445710
mov dword [ebp - 0x314], esp
mov dword [ebp - 0x320], 0x446914
mov dword [ebp - 0x318], 0x40cb9e
mov dword [ebp - 0x340], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x344], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x31c], eax
lea eax, [ebp - 0x33c]
mov dword [esp], eax
call fcn.004286e0
mov dword [esp], 0xfffffff6
mov dword [ebp - 0x338], 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [ebp - 0x350], eax
mov ebx, eax
lea eax, [ebp - 0x300]
sub esp, 4
mov dword [ebp - 0x300], 0
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleMode]
sub esp, 8
test eax, eax
je 0x40cc99
cmp byte [ebp - 0x340], 0
mov ebx, dword [ebp - 0x300]
mov dword [ebp - 0x358], ebx
je 0x40cb71
mov eax, ebx
or al, 0xe0
test bl, 0x80
cmovne eax, ebx
mov dword [ebp - 0x358], eax
and eax, 0xffffffb8
or eax, 0x18
mov dword [ebp - 0x340], eax
mov ebx, dword [ebp - 0x340]
mov eax, ebx
or ah, 2
cmp byte [ebp - 0x344], 0
cmove eax, ebx
mov dword [ebp - 0x340], eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x350]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleMode]
mov dword [ebp - 0x338], 0xffffffff
mov dword [ebp - 0x35c], eax
call eax
sub esp, 8
test eax, eax
je 0x40cc46
mov dword [esp], str._nPress_any_keys____Ctrl_D_exits_n_n
mov dword [ebp - 0x338], 0xffffffff
call fcn.00433610
mov dword [ebp - 0x2fc], 0
lea eax, [ebp - 0x2fc]
mov dword [esp + 8], 0x20
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x298]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x350]
mov dword [esp], eax
mov dword [ebp - 0x338], 0xffffffff
call dword [sym.imp.KERNEL32.dll_ReadConsoleInputW]
sub esp, 0x10
test eax, eax
je 0x40c31f
mov ebx, dword [ebp - 0x2fc]
test ebx, ebx
je 0x40c31f
lea eax, [ebp - 0x2c0]
mov dword [ebp - 0x2c4], 0
mov byte [ebp - 0x2c0], 0
mov dword [ebp - 0x344], 0
mov dword [ebp - 0x2c8], eax
lea eax, [ebp - 0x294]
mov dword [ebp - 0x340], eax
jmp 0x40be1d
cmp ax, 2
je 0x40c360
cmp ax, 4
je 0x40c460
cmp ax, 8
je 0x40c690
cmp ax, 0x10
je 0x40c7d0
add dword [ebp - 0x344], 1
add dword [ebp - 0x340], 0x14
mov eax, dword [ebp - 0x344]
cmp dword [ebp - 0x2fc], eax
jbe 0x40c994
mov eax, dword [ebp - 0x340]
movzx eax, word [eax - 4]
cmp ax, 1
jne 0x40bdd5
mov edi, dword [ebp - 0x340]
movzx eax, word [edi + 6]
mov word [ebp - 0x2e8], ax
movzx eax, word [edi + 0xa]
mov dword [ebp - 0x2e4], eax
mov eax, dword [edi + 0xc]
mov word [ebp - 0x2e0], ax
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x2c4]
cmp eax, 4
jbe 0x40cb88
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 5
mov dword [esp], str.key:
mov dword [ebp - 0x338], 2
call fcn.00440010
mov eax, dword [ebp - 0x340]
mov edx, 0x44953d
sub esp, 8
mov ecx, dword [eax]
mov eax, 0x449540
test ecx, ecx
cmovne eax, edx
mov edx, 0x7fffffff
sub edx, dword [ebp - 0x2c4]
cmp edx, 1
jbe 0x40cc30
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 2
mov dword [esp], eax
mov dword [ebp - 0x338], 2
call fcn.00440010
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x2c4]
sub esp, 8
cmp eax, 4
jbe 0x40cc24
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 5
mov dword [esp], str._rpt
mov dword [ebp - 0x338], 2
call fcn.00440010
mov eax, dword [ebp - 0x340]
lea ebx, [ebp - 0x2f1]
sub esp, 8
mov byte [ebp - 0x2f1], 0
movzx edx, word [eax + 4]
lea esi, [esi]
movzx eax, dx
sub ebx, 1
imul eax, eax, 0xcccd
shr eax, 0x13
mov ecx, eax
lea eax, [ecx + ecx*4]
add eax, eax
sub edx, eax
mov eax, edx
mov edx, ecx
add eax, 0x30
test cx, cx
mov byte [ebx], al
jne 0x40bf30
lea eax, [ebp - 0x2f8]
mov edi, ebx
mov edx, 0x7fffffff
sub edx, dword [ebp - 0x2c4]
sub edi, eax
lea eax, [ebp - 0x2f0]
mov dword [ebp - 0x2f0], edi
sub eax, ebx
sub eax, 1
cmp eax, edx
mov dword [ebp - 0x2ec], eax
ja 0x40cc0e
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [ebp - 0x338], 2
call fcn.00440010
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x2c4]
sub esp, 8
cmp eax, 4
jbe 0x40cc02
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 5
mov dword [esp], str._scn
mov dword [ebp - 0x338], 2
call fcn.00440010
mov eax, dword [ebp - 0x340]
sub esp, 8
cmp word [eax + 8], 0
je 0x40c7c0
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x2c4]
cmp eax, 1
jbe 0x40cbf6
mov edx, 2
mov eax, 0x449543
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x338], 2
call fcn.00440010
mov eax, dword [ebp - 0x340]
sub esp, 8
movzx ebx, word [eax + 8]
mov edx, ebx
mov eax, ebx
shr dx, 0xc
test dx, dx
jne 0x40cb30
test bh, 0xf
jne 0x40c9f4
test bl, 0xf0
mov ecx, 4
mov edi, 2
jne 0x40c9fe
and eax, 0xf
lea esi, [ebp - 0x2d8]
movzx eax, byte [eax + 0x45092c]
mov byte [ebp - 0x2d8], al
lea eax, [ebp - 0x2d7]
mov edx, 0x7fffffff
sub edx, dword [ebp - 0x2c4]
mov byte [eax], 0
sub eax, esi
mov dword [ebp - 0x2d0], 0
mov dword [ebp - 0x2cc], eax
cmp edx, eax
jb 0x40cbe0
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [ebp - 0x338], 2
call fcn.00440010
mov eax, dword [ebp - 0x2c4]
mov edx, dword [ebp - 0x2c8]
sub esp, 8
lea ebx, [eax + 1]
mov dword [ebp - 0x348], eax
lea eax, [ebp - 0x2c0]
cmp edx, eax
mov eax, 0xf
cmovne eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x34c], ebx
cmp ebx, eax
ja 0x40c904
mov edi, dword [ebp - 0x348]
mov eax, dword [ebp - 0x34c]
lea ebx, [ebp - 0x2b0]
mov ecx, ebx
mov byte [edx + edi], 0x20
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp - 0x2c8]
mov byte [eax + edi + 1], 0
lea eax, [ebp - 0x2e8]
mov dword [esp], eax
mov dword [ebp - 0x338], 2
call fcn.0040e790
mov eax, dword [ebp - 0x2ac]
sub esp, 4
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b0]
mov dword [esp], eax
mov dword [ebp - 0x338], 1
call fcn.00440010
mov eax, dword [ebp - 0x2c4]
mov edx, dword [ebp - 0x2c8]
sub esp, 8
lea ebx, [eax + 1]
mov dword [ebp - 0x348], eax
lea eax, [ebp - 0x2c0]
cmp edx, eax
mov eax, 0xf
cmovne eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x34c], ebx
cmp ebx, eax
ja 0x40c8c0
mov edi, dword [ebp - 0x348]
mov eax, dword [ebp - 0x34c]
lea ebx, [ebp - 0x2a8]
mov dword [ebp - 0x348], ebx
mov byte [edx + edi], 0xa
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp - 0x2c8]
mov byte [eax + edi + 1], 0
mov eax, dword [ebp - 0x2b0]
cmp eax, ebx
je 0x40c1e8
mov dword [esp], eax
call fcn.00444a10
mov esi, dword [ebp - 0x340]
test byte [esi + 0xc], 0xc
movzx eax, word [esi + 6]
je 0x40c1fe
cmp ax, 0x44
je 0x40c221
test ax, ax
jne 0x40bdfd
mov eax, dword [ebp - 0x344]
lea eax, [eax + eax*4]
cmp dword [ebp + eax*4 - 0x28c], 0x40000
jne 0x40bdfd
mov byte [ebp - 0x344], 1
nop
lea esi, [esi]
mov eax, dword [ebp - 0x348]
lea ebx, [ebp - 0x2c0]
mov dword [ebp - 0x2b0], eax
mov eax, dword [ebp - 0x2c8]
cmp eax, ebx
je 0x40cb3c
mov dword [ebp - 0x2b0], eax
mov eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x2a8], eax
mov eax, dword [ebp - 0x2c4]
mov byte [ebp - 0x2c0], 0
mov dword [ebp - 0x2c4], 0
mov dword [ebp - 0x2ac], eax
lea eax, [ebp - 0x2c0]
mov dword [ebp - 0x2c8], eax
mov eax, dword [fcn.0042de40]
mov dword [esp], 1
mov dword [ebp - 0x338], 4
mov dword [ebp - 0x340], eax
call eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2ac]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2b0]
mov dword [esp], eax
call sub.msvcrt.dll_fwrite
mov dword [esp], 1
mov eax, dword [ebp - 0x340]
call eax
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, dword [ebp - 0x2b0]
cmp eax, dword [ebp - 0x348]
je 0x40c2fa
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x2c8]
lea ebx, [ebp - 0x2c0]
cmp eax, ebx
je 0x40c312
mov dword [esp], eax
call fcn.00444a10
cmp byte [ebp - 0x344], 0
je 0x40bd52
mov eax, dword [ebp - 0x358]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x350]
mov dword [esp], eax
mov dword [ebp - 0x338], 0xffffffff
mov eax, dword [ebp - 0x35c]
call eax
lea eax, [ebp - 0x33c]
sub esp, 8
mov dword [esp], eax
call fcn.00428750
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x2c4]
cmp eax, 6
jbe 0x40cd9a
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 7
mov dword [esp], str.mouse:
mov dword [ebp - 0x338], 2
call fcn.00440010
mov eax, dword [ebp - 0x340]
lea ebx, [ebp - 0x2b0]
sub esp, 8
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.0040b760
mov eax, dword [ebp - 0x2ac]
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b0]
mov dword [esp], eax
mov dword [ebp - 0x338], 3
call fcn.00440010
mov eax, dword [ebp - 0x2c4]
mov edx, dword [ebp - 0x2c8]
sub esp, 8
lea edi, [eax + 1]
mov dword [ebp - 0x348], eax
lea eax, [ebp - 0x2c0]
cmp edx, eax
mov eax, 0xf
cmovne eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x34c], edi
cmp edi, eax
ja 0x40c950
mov ebx, dword [ebp - 0x348]
mov eax, dword [ebp - 0x34c]
lea edi, [ebp - 0x2a8]
mov byte [edx + ebx], 0xa
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp - 0x2c8]
mov byte [eax + ebx + 1], 0
mov eax, dword [ebp - 0x2b0]
cmp eax, edi
je 0x40bdfd
mov dword [esp], eax
call fcn.00444a10
jmp 0x40bdfd
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x2c4]
cmp eax, 0x17
jbe 0x40ccd8
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 0x18
mov dword [esp], str.buffer_resized:_dwSize_
mov dword [ebp - 0x338], 2
call fcn.00440010
mov eax, dword [ebp - 0x340]
sub esp, 8
mov byte [ebp - 0x2e1], 0
lea ecx, [ebp - 0x2e1]
movzx ebx, word [eax]
mov eax, ebx
sar ax, 0xf
mov edx, eax
xor edx, ebx
sub edx, eax
jmp 0x40c4c2
mov ecx, esi
movzx eax, dx
imul eax, eax, 0xcccd
shr eax, 0x13
mov esi, eax
lea eax, [esi + esi*4]
add eax, eax
sub edx, eax
mov eax, edx
mov edx, esi
lea esi, [ecx - 1]
add eax, 0x30
test dx, dx
mov byte [ecx - 1], al
jne 0x40c4c0
test bx, bx
jns 0x40c4f5
mov byte [esi - 1], 0x2d
lea esi, [ecx - 2]
lea eax, [ebp - 0x2e8]
mov edi, esi
mov edx, 0x7fffffff
sub edx, dword [ebp - 0x2c4]
sub edi, eax
lea eax, [ebp - 0x2e0]
mov dword [ebp - 0x2e0], edi
sub eax, esi
sub eax, 1
cmp eax, edx
mov dword [ebp - 0x2dc], eax
ja 0x40ccc2
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [ebp - 0x338], 2
call fcn.00440010
mov eax, dword [ebp - 0x2c4]
mov edx, dword [ebp - 0x2c8]
sub esp, 8
lea esi, [eax + 1]
mov dword [ebp - 0x348], eax
lea eax, [ebp - 0x2c0]
cmp edx, eax
mov eax, 0xf
cmovne eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x34c], esi
cmp esi, eax
ja 0x40c9b0
mov ebx, dword [ebp - 0x348]
mov eax, dword [ebp - 0x34c]
lea ecx, [ebp - 0x2d1]
mov byte [edx + ebx], 0x2c
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp - 0x2c8]
mov byte [eax + ebx + 1], 0
mov eax, dword [ebp - 0x340]
mov byte [ebp - 0x2d1], 0
movzx ebx, word [eax + 2]
mov eax, ebx
sar ax, 0xf
mov edx, eax
xor edx, ebx
sub edx, eax
jmp 0x40c5c7
mov ecx, edi
movzx eax, dx
lea edi, [ecx - 1]
imul eax, eax, 0xcccd
shr eax, 0x13
mov esi, eax
lea eax, [esi + esi*4]
add eax, eax
sub edx, eax
mov eax, edx
mov edx, esi
add eax, 0x30
test si, si
mov byte [ecx - 1], al
jne 0x40c5c5
test bx, bx
jns 0x40c5fa
mov byte [edi - 1], 0x2d
lea edi, [ecx - 2]
lea esi, [ebp - 0x2d8]
mov eax, edi
mov edx, 0x7fffffff
sub edx, dword [ebp - 0x2c4]
sub eax, esi
mov dword [ebp - 0x2d0], eax
lea eax, [ebp - 0x2d0]
sub eax, edi
sub eax, 1
cmp eax, edx
mov dword [ebp - 0x2cc], eax
ja 0x40cdb0
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [ebp - 0x338], 2
call fcn.00440010
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x2c4]
sub esp, 8
cmp eax, 1
jbe 0x40cd8e
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 2
mov dword [esp], 0x449629
mov dword [ebp - 0x338], 2
call fcn.00440010
sub esp, 8
jmp 0x40bdfd
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x2c4]
cmp eax, 0x17
jbe 0x40cd78
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 0x18
mov dword [esp], str.menu_event:_commandId0x
mov dword [ebp - 0x338], 2
call fcn.00440010
mov eax, dword [ebp - 0x340]
sub esp, 8
mov ecx, 0x1c
xor esi, esi
mov edi, dword [eax]
mov eax, edi
lea ebx, [esi + 1]
lea edx, [ecx - 4]
shr eax, cl
test al, 0xf
jne 0x40ca84
cmp ebx, 7
mov esi, ebx
mov ecx, edx
jne 0x40c6da
shr edi, cl
lea ebx, [ebp - 0x2b0]
and edi, 0xf
movzx eax, byte [edi + 0x45090c]
mov byte [ebp - 0x2b0], al
lea eax, [ebp - 0x2af]
mov edx, 0x7fffffff
sub edx, dword [ebp - 0x2c4]
mov byte [eax], 0
sub eax, ebx
mov dword [ebp - 0x2a4], 0
mov dword [ebp - 0x2a0], eax
cmp edx, eax
jb 0x40cd62
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [ebp - 0x338], 2
call fcn.00440010
mov eax, dword [ebp - 0x2c4]
mov edx, dword [ebp - 0x2c8]
sub esp, 8
lea esi, [eax + 1]
mov dword [ebp - 0x348], eax
lea eax, [ebp - 0x2c0]
cmp edx, eax
mov eax, 0xf
cmovne eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x34c], esi
cmp esi, eax
ja 0x40ca40
mov ebx, dword [ebp - 0x348]
mov eax, dword [ebp - 0x34c]
mov byte [edx + ebx], 0xa
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp - 0x2c8]
mov byte [eax + ebx + 1], 0
jmp 0x40bdfd
xor edx, edx
mov eax, 0x449546
jmp 0x40c013
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x2c4]
cmp eax, 6
jbe 0x40cd4c
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 7
mov dword [esp], str.focus:
mov dword [ebp - 0x338], 2
call fcn.00440010
mov esi, dword [ebp - 0x340]
sub esp, 8
mov ecx, str.gained
cmp dword [esi], 1
mov edx, dword [esi]
sbb eax, eax
and eax, 0xfffffffe
add eax, 6
test edx, edx
mov edx, str.lost
cmovne edx, ecx
mov ecx, 0x7fffffff
sub ecx, dword [ebp - 0x2c4]
cmp ecx, eax
jb 0x40cd36
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [ebp - 0x338], 2
call fcn.00440010
mov eax, dword [ebp - 0x2c4]
mov edx, dword [ebp - 0x2c8]
sub esp, 8
lea edi, [eax + 1]
mov dword [ebp - 0x348], eax
lea eax, [ebp - 0x2c0]
cmp edx, eax
mov eax, 0xf
cmovne eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x34c], edi
cmp edi, eax
ja 0x40cae5
mov esi, dword [ebp - 0x348]
mov eax, dword [ebp - 0x34c]
mov byte [edx + esi], 0xa
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebp - 0x2c8]
mov byte [eax + esi + 1], 0
jmp 0x40bdfd
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x348]
mov dword [esp], eax
mov dword [ebp - 0x338], 1
call fcn.004401e0
sub esp, 0x10
mov edx, dword [ebp - 0x2c8]
jmp 0x40c1a9
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x348]
mov dword [esp], eax
mov dword [ebp - 0x338], 2
call fcn.004401e0
sub esp, 0x10
mov edx, dword [ebp - 0x2c8]
jmp 0x40c103
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x348]
mov dword [esp], eax
mov dword [ebp - 0x338], 3
call fcn.004401e0
sub esp, 0x10
mov edx, dword [ebp - 0x2c8]
jmp 0x40c415
lea eax, [ebp - 0x2a8]
mov byte [ebp - 0x344], 0
mov dword [ebp - 0x348], eax
jmp 0x40c230
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x348]
mov dword [esp], eax
mov dword [ebp - 0x338], 2
call fcn.004401e0
sub esp, 0x10
mov edx, dword [ebp - 0x2c8]
jmp 0x40c57f
mov ecx, 8
mov edi, 1
lea esi, [ebp - 0x2d8]
mov edx, edi
lea edi, [ecx + edi*4 - 0x10]
mov dword [ebp - 0x348], edx
mov eax, esi
mov edx, ebx
add eax, 1
sar edx, cl
sub ecx, 4
and edx, 0xf
movzx edx, byte [edx + 0x45092c]
mov byte [eax - 1], dl
cmp ecx, edi
jne 0x40ca12
mov edi, dword [ebp - 0x348]
mov eax, esi
sub eax, edi
add eax, 4
jmp 0x40c085
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x348]
mov dword [esp], eax
mov dword [ebp - 0x338], 2
call fcn.004401e0
sub esp, 0x10
mov edx, dword [ebp - 0x2c8]
jmp 0x40c791
lea ebx, [ebp - 0x2b0]
mov dword [ebp - 0x34c], edx
mov eax, esi
mov dword [ebp - 0x354], esi
mov edx, ebx
sub edx, esi
mov dword [ebp - 0x348], edx
mov edx, dword [ebp - 0x34c]
jmp 0x40cab3
sub edx, 4
mov esi, edi
shr esi, cl
mov ecx, esi
mov esi, dword [ebp - 0x348]
and ecx, 0xf
movzx ecx, byte [ecx + 0x45090c]
mov byte [esi + eax], cl
add eax, 1
mov ecx, edx
cmp eax, 8
jne 0x40cab0
mov esi, dword [ebp - 0x354]
sub eax, esi
add eax, ebx
jmp 0x40c713
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
lea ecx, [ebp - 0x2c8]
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x348]
mov dword [esp], eax
mov dword [ebp - 0x338], 2
call fcn.004401e0
sub esp, 0x10
mov edx, dword [ebp - 0x2c8]
jmp 0x40c896
mov ecx, 0xc
xor edi, edi
jmp 0x40c9fe
mov eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x2a8], eax
mov eax, dword [ebp - 0x2bc]
mov dword [ebp - 0x2a4], eax
mov eax, dword [ebp - 0x2b8]
mov dword [ebp - 0x2a0], eax
mov eax, dword [ebp - 0x2b4]
mov dword [ebp - 0x29c], eax
jmp 0x40c262
mov eax, dword [ebp - 0x358]
and eax, 0xffffffe8
or eax, 8
mov dword [ebp - 0x340], eax
jmp 0x40bce8
mov dword [esp], 0x449500
mov dword [ebp - 0x338], 2
call fcn.00443ca0
add ebp, 0x18
mov eax, dword [ebp - 0x334]
mov dword [ebp - 0x340], eax
mov eax, dword [ebp - 0x338]
test eax, eax
je 0x40ccee
sub eax, 1
je 0x40cd06
sub eax, 1
je 0x40ccee
sub eax, 1
je 0x40ccee
ud2
mov dword [esp], 0x449500
mov dword [ebp - 0x338], 2
call fcn.00443ca0
mov dword [esp], 0x449500
call fcn.00443ca0
mov dword [esp], 0x449500
call fcn.00443ca0
mov dword [esp], 0x449500
mov dword [ebp - 0x338], 2
call fcn.00443ca0
mov dword [esp], 0x449500
call fcn.00443ca0
mov dword [esp], 0x449500
mov dword [ebp - 0x338], 2
call fcn.00443ca0
mov eax, dword [ebp - 0x300]
mov dword [ebp - 0x344], eax
mov dword [esp], 2
call dword [0x44703c]
mov edi, dword [ebp - 0x358]
mov dword [esp + 0x10], edi
mov edi, dword [ebp - 0x340]
mov dword [esp + 0xc], edi
mov esi, dword [ebp - 0x344]
mov dword [esp + 4], str.Error:_could_not_set_console_mode__0x_x____0x_x____0x_x__n
mov dword [esp], eax
mov dword [esp + 8], esi
call fcn.00433640
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov dword [esp], 2
call dword [0x44703c]
mov dword [esp + 4], str.Error:_could_not_read_console_mode____is_STDIN_a_console_handle__n
mov dword [esp], eax
call fcn.00433640
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov dword [esp], 0x449500
mov dword [ebp - 0x338], 2
call fcn.00443ca0
mov dword [esp], 0x449500
mov dword [ebp - 0x338], 2
call fcn.00443ca0
mov eax, dword [ebp - 0x2b0]
lea edx, [ebp - 0x2a8]
cmp eax, edx
je 0x40cd06
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x2c8]
lea edx, [ebp - 0x2c0]
cmp eax, edx
je 0x40cd1e
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x340]
mov dword [esp], eax
mov dword [ebp - 0x338], 0xffffffff
call fcn.004289f0
mov dword [esp], 0x449500
mov dword [ebp - 0x338], 2
call fcn.00443ca0
mov dword [esp], 0x449500
mov dword [ebp - 0x338], 2
call fcn.00443ca0
mov dword [esp], 0x449500
mov dword [ebp - 0x338], 2
call fcn.00443ca0
mov dword [esp], 0x449500
mov dword [ebp - 0x338], 2
call fcn.00443ca0
mov dword [esp], 0x449500
call fcn.00443ca0
mov dword [esp], 0x449500
mov dword [ebp - 0x338], 2
call fcn.00443ca0
mov dword [esp], 0x449500
mov dword [ebp - 0x338], 2
call fcn.00443ca0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop