Function at 0x414560
Capabilities:
Log keystrokes
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [ebp + 8]
test eax, eax
jne 0x41461e
mov ecx, dword [0x560078]
test ecx, ecx
mov dword [ebp - 0x48], ecx
je 0x41461e
cmp word [0x560088], 0
mov ebx, ecx
lea esi, [ebp - 0x34]
mov edi, dword [sym.imp.KERNEL32.dll_ReadConsoleInputA]
je 0x414680
movzx eax, word [0x56008a]
mov ebx, eax
movzx eax, byte [0x56008e]
mov byte [ebp - 0x40], al
mov eax, dword [0x560090]
test al, 0xc
mov dword [ebp - 0x3c], eax
je 0x4145f8
test byte [ebp - 0x3c], 3
je 0x4145f8
cmp byte [ebp - 0x40], 0
je 0x4145f8
test byte [ebp - 0x3c], 1
jne 0x414836
mov eax, dword [ebp - 0x3c]
test al, 2
je 0x4145f8
test al, 8
jne 0x4148ff
mov ecx, dword [ebp - 0x3c]
mov eax, ecx
mov edx, ecx
and eax, 0xfffffffd
and edx, 0xfffffff9
and ecx, 4
cmovne eax, edx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
and eax, 0x100
mov dword [ebp - 0x44], eax
mov eax, ebx
je 0x414722
sub eax, 0xd
cmp ax, 0x62
ja case.0x414732.2
movzx eax, ax
jmp dword [eax*4 + 0x51d93c]
mov ecx, dword [ebp + 0x10]
mov dword [esp], eax
mov dword [esp + 8], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 4], ecx
call sub.msvcrt.dll__read
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x2e
mov dword [esp], str.e_3
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
test edx, edx
jne 0x414b18
cmp byte [ebp - 0x40], 0
jne 0x414b20
test byte [0x561ee0], 0x80
jne 0x414776
mov ebx, dword [ebp - 0x48]
lea esi, [esi]
mov dword [ebp - 0x34], 0
mov dword [0x560080], 0
mov dword [0x560084], 0
mov dword [0x560088], 0
mov dword [0x56008c], 0
mov dword [0x560090], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], 1
mov dword [esp + 4], 0x560080
mov dword [esp], ebx
call edi
sub esp, 0x10
test eax, eax
je 0x414740
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x415103
cmp eax, 1
jne 0x4150f7
cmp word [0x560080], 1
jne 0x414680
mov ecx, dword [0x560084]
test ecx, ecx
je 0x414680
cmp word [0x560088], 0
mov dword [ebp - 0x48], ebx
jne 0x41459e
mov dword [esp], str.ReadConsoleInputA_returned_a_key_event_with_zero_repeat_count
call fcn.004167f0
sub eax, 8
cmp ax, 0xda
ja case.0x414732.2
movzx eax, ax
jmp dword [eax*4 + 0x51dac8]
mov eax, dword [sym.imp.msvcrt.dll__errno]
test byte [0x561ee0], 0x80
mov dword [ebp - 0x3c], eax
jne 0x41483f
mov eax, dword [ebp - 0x3c]
xor ebx, ebx
call eax
mov dword [eax], 5
mov eax, 0xffffffff
mov word [0x560088], bx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [sym.imp.msvcrt.dll__errno]
mov dword [ebp - 0x3c], eax
call eax
mov edx, dword [ebp - 0x44]
test edx, edx
mov edx, 0x51d6ef
mov eax, dword [eax]
mov dword [esp + 4], str._console_read:_unknown_virtual_key_code:__d__enhanced:__s
mov dword [ebp - 0x40], eax
mov eax, 0x51d6ea
cmove eax, edx
mov dword [esp + 0xc], eax
lea edx, [ebp - 0x2c]
movzx eax, bx
mov dword [esp], edx
mov dword [esp + 8], eax
call fcn.0042a1c0
lea eax, [ebp - 0x30]
mov ecx, eax
mov ebx, eax
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc38
mov dword [esp], str.system_core_adb_sysdeps_win32.cpp
mov dword [ebp - 0x44], eax
call fcn.0042a560
mov ecx, ebx
sub esp, 0x14
call fcn.0042a6d0
mov edx, dword [ebp - 0x2c]
mov ecx, dword [edx - 0xc]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.00505c10
mov ecx, ebx
call fcn.0042a790
mov eax, dword [ebp - 0x2c]
lea ecx, [eax - 0xc]
cmp ecx, 0x516f30
jne 0x415269
mov eax, dword [ebp - 0x3c]
call eax
mov ecx, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x48]
mov dword [eax], ecx
jmp 0x414680
and dword [ebp - 0x3c], 0xfffffff6
jmp 0x4145f8
call eax
mov ebx, dword [eax]
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edx, [ebp - 0x2c]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.004104a0
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x30]
mov dword [esp], eax
mov dword [esp + 4], str._get_interesting_input_record_uncached:_ReadConsoleInputA___failed:__s_n
mov dword [esp + 8], edx
call fcn.0042a1c0
lea eax, [ebp - 0x28]
mov ecx, eax
mov esi, eax
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 0x953
mov dword [esp], str.system_core_adb_sysdeps_win32.cpp
mov dword [ebp - 0x4c], eax
call fcn.0042a560
mov ecx, esi
sub esp, 0x14
call fcn.0042a6d0
mov edx, dword [ebp - 0x30]
mov ecx, dword [edx - 0xc]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.00505c10
mov ecx, esi
call fcn.0042a790
mov edx, dword [ebp - 0x30]
lea esi, [edx - 0xc]
cmp esi, 0x516f30
jne 0x4151bd
mov edx, dword [ebp - 0x2c]
lea esi, [edx - 0xc]
cmp esi, 0x516f30
jne 0x4151f4
mov eax, dword [ebp - 0x3c]
call eax
mov dword [eax], ebx
jmp 0x414755
and dword [ebp - 0x3c], 0xfffffff5
jmp 0x4145f8
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x2d
mov dword [esp], str.e_2
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x28
mov dword [esp], 0x51d82c
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x27
mov dword [esp], 0x51d828
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x26
mov dword [esp], 0x51d824
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x25
mov dword [esp], 0x51d820
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x22
mov dword [esp], str.e_6
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x21
mov dword [esp], str.e_5
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov edx, 3
mov esi, 0x51d734
lea esi, [esi]
xor eax, eax
cmp word [0x560088], 0
je 0x414634
cmp dword [ebp + 0x10], edx
jb 0x414a7d
mov ebx, dword [ebp + 0xc]
mov edi, edx
sub dword [ebp + 0x10], edx
mov dword [ebp - 0x40], esi
mov esi, dword [ebp + 0x10]
lea eax, [ebx + edx]
mov dword [ebp - 0x3c], eax
jmp 0x414a32
mov esi, edx
mov eax, dword [ebp - 0x40]
mov dword [esp], ebx
add ebx, edi
mov dword [esp + 8], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
movzx ecx, word [0x560088]
mov eax, ebx
sub eax, dword [ebp - 0x3c]
lea edx, [ecx - 1]
add eax, edi
test dx, dx
mov word [0x560088], dx
je 0x414634
mov edx, esi
sub edx, edi
cmp esi, edi
jae 0x414a30
test eax, eax
mov edx, edi
mov dword [ebp + 0x10], esi
jne 0x414634
mov eax, dword [sym.imp.msvcrt.dll__errno]
test byte [0x561ee0], 0x80
mov dword [ebp - 0x3c], eax
jne 0x41511e
mov eax, dword [ebp - 0x3c]
call eax
mov dword [eax], 0xc
mov eax, 0xffffffff
jmp 0x414634
mov edx, 3
mov esi, 0x51d738
jmp 0x414a00
test byte [ebp - 0x3c], 0xc
mov esi, 0x51d71e
mov eax, 0x51c7bc
mov edx, 1
cmovne esi, eax
jmp 0x414a00
mov edx, 1
mov esi, 0x51d732
jmp 0x414a00
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x560084
mov dword [ebp - 0x4c], eax
call fcn.0040c600
test byte [ebp - 0x3c], 3
mov edx, eax
je 0x414658
test byte [ebp - 0x3c], 0xc
je 0x414ddc
test byte [ebp - 0x3c], 0x10
jne 0x414ddc
jmp 0x414658
mov esi, dword [ebp - 0x4c]
jmp 0x414a00
movzx eax, byte [ebp - 0x40]
mov edx, 1
lea esi, [ebp - 0x28]
mov byte [ebp - 0x28], al
jmp 0x414a00
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x83
mov dword [esp], str.e_34
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov edx, 1
mov esi, 0x51d70d
jmp 0x414a00
mov edx, 1
mov esi, 0x51d6f7
jmp 0x414a00
mov edx, 1
mov esi, 0x51d70b
jmp 0x414a00
mov edx, 1
mov esi, 0x51d709
jmp 0x414a00
mov edx, 1
mov esi, 0x51d707
jmp 0x414a00
mov edx, 1
mov esi, str.517_9864320
jmp 0x414a00
mov edx, 1
mov esi, 0x51d705
jmp 0x414a00
mov edx, 1
mov esi, 0x51d6f9
jmp 0x414a00
test byte [ebp - 0x3c], 0x10
je case.0x414617.26
mov byte [ebp - 0x28], 0x36
mov edx, 1
lea esi, [ebp - 0x28]
jmp 0x414a00
test byte [ebp - 0x3c], 0x10
je case.0x414617.27
mov byte [ebp - 0x28], 0x32
jmp 0x414bdb
test byte [ebp - 0x3c], 0x10
je case.0x414617.32
mov byte [ebp - 0x28], 0x30
jmp 0x414bdb
mov dword [esp + 4], 2
mov dword [esp], 0x6e
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
sub esp, 8
test byte [ebp - 0x3c], 0x10
je case.0x414617.33
test al, al
je case.0x414732.2
mov byte [ebp - 0x28], al
jmp 0x414bdb
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x82
mov dword [esp], str.e_33
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
test byte [ebp - 0x3c], 3
jne 0x4150e8
test byte [ebp - 0x3c], 0xc
mov esi, 0x51c7bc
mov eax, 0x51d71e
mov edx, 1
cmove esi, eax
jmp 0x414a00
test byte [ebp - 0x3c], 3
mov edx, 2
mov esi, 0x51d71b
jne 0x414a00
test byte [ebp - 0x3c], 0xc
je 0x41510f
mov byte [ebp - 0x28], 0
jmp 0x414bdb
test byte [ebp - 0x3c], 0x10
je case.0x414617.21
mov byte [ebp - 0x28], 0x33
jmp 0x414bdb
test byte [ebp - 0x3c], 0x10
je case.0x414617.20
mov byte [ebp - 0x28], 0x39
jmp 0x414bdb
mov edi, dword [ebp - 0x3c]
mov esi, str.e_4
mov eax, 0x51d6f7
and edi, 0x10
cmp edi, 1
sbb edx, edx
and edx, 3
add edx, 1
test edi, edi
cmovne esi, eax
jmp 0x414a00
mov edi, dword [ebp - 0x3c]
mov esi, 0x51d70f
mov eax, 0x51d6f9
and edi, 0x10
cmp edi, 1
sbb edx, edx
and edx, 3
add edx, 1
test edi, edi
cmovne esi, eax
jmp 0x414a00
test byte [ebp - 0x3c], 0x10
je case.0x414617.24
mov byte [ebp - 0x28], 0x34
jmp 0x414bdb
test byte [ebp - 0x3c], 0x10
je case.0x414617.25
mov byte [ebp - 0x28], 0x38
jmp 0x414bdb
mov edi, dword [ebp - 0x3c]
mov esi, 0x51d72d
mov eax, 0x51d72f
and edi, 3
cmp edi, 1
sbb edx, edx
add edx, 2
test edi, edi
cmovne esi, eax
jmp 0x414a00
mov edi, dword [ebp - 0x3c]
mov esi, 0x51d727
mov eax, 0x51d729
and edi, 0x10
cmp edi, 1
sbb edx, edx
and edx, 0xfffffffe
add edx, 3
test edi, edi
cmovne esi, eax
jmp 0x414a00
mov edi, dword [ebp - 0x3c]
mov esi, 0x51d723
mov eax, str.517_9864320
and edi, 0x10
cmp edi, 1
sbb edx, edx
and edx, 2
add edx, 1
test edi, edi
cmovne esi, eax
jmp 0x414a00
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, ebx
mov dword [esp + 8], 0x12
mov dword [esp], 0x56008e
mov dword [ebp - 0x4c], eax
mov dword [esp + 4], ecx
movzx ecx, word [0x56008c]
call fcn.0040c460
test byte [ebp - 0x3c], 3
mov edx, eax
je 0x414658
test edx, edx
je case.0x414732.2
mov eax, dword [ebp - 0x4c]
call fcn.0040c6e0
mov edx, eax
jmp 0x414658
mov edx, 1
mov esi, 0x51d703
jmp 0x414a00
mov edx, 1
mov esi, 0x51d701
jmp 0x414a00
mov edx, 1
mov esi, 0x51d6ff
jmp 0x414a00
mov edx, 1
mov esi, 0x51d6fd
jmp 0x414a00
mov edx, 1
mov esi, 0x51d6fb
jmp 0x414a00
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x6e
mov dword [esp + 8], 0x11
mov dword [esp], 0x56008e
mov dword [ebp - 0x4c], eax
mov dword [esp + 4], ecx
movzx ecx, word [0x56008c]
call fcn.0040c460
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x70
mov dword [esp], 0x51d83a
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x71
mov dword [esp], 0x51d83e
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x72
mov dword [esp], 0x51d842
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x73
mov dword [esp], 0x51d846
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x74
mov dword [esp], str.e_15
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x75
mov dword [esp], str.e_17
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x76
mov dword [esp], str.e_18
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x77
mov dword [esp], str.e_19
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x78
mov dword [esp], str.e_20
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x79
mov dword [esp], str.e_21
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x7a
mov dword [esp], str.e_23
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x7b
mov dword [esp], str.e_24
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x7c
mov dword [esp], str.e_25
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x7d
mov dword [esp], str.e_26
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x7e
mov dword [esp], str.e_28
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x7f
mov dword [esp], str.e_29
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, pe_nt_image_headers32
mov dword [esp], str.e_31
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x81
mov dword [esp], str.e_32
mov dword [ebp - 0x4c], eax
call fcn.0040c050
mov edx, eax
jmp 0x414658
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
mov edx, 0x560084
mov dword [ebp - 0x4c], eax
call fcn.0040c600
test byte [ebp - 0x3c], 3
mov edx, eax
je 0x414658
jmp 0x414ddc
mov edx, 2
mov esi, 0x51d720
jmp 0x414a00
mov dword [esp], str.ReadConsoleInputA_did_not_return_one_input_record
call fcn.004167f0
mov dword [esp], str.ReadConsoleInputA_returned_0
call fcn.004167f0
mov edx, 1
mov esi, 0x51d719
jmp 0x414a00
mov dword [ebp - 0x40], edx
call eax
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [eax]
lea eax, [ebp - 0x2c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str._console_read:_no_buffer_space_to_write_one_sequence__buffer:__ld__sequence:__ld_n
call fcn.0042a1c0
lea eax, [ebp - 0x30]
mov ecx, eax
mov edi, eax
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc55
mov dword [esp], str.system_core_adb_sysdeps_win32.cpp
mov dword [ebp - 0x44], eax
call fcn.0042a560
mov ecx, edi
sub esp, 0x14
call fcn.0042a6d0
mov edx, dword [ebp - 0x2c]
mov ecx, dword [edx - 0xc]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.00505c10
mov ecx, edi
call fcn.0042a790
mov edx, dword [ebp - 0x2c]
lea esi, [edx - 0xc]
cmp esi, 0x516f30
jne 0x415227
mov eax, dword [ebp - 0x3c]
call eax
mov dword [eax], ebx
jmp 0x414a92
mov ecx, dword [0x5112ac]
lea eax, [edx - 4]
test ecx, ecx
jne 0x41529c
mov eax, dword [edx - 4]
lea ecx, [eax - 1]
mov dword [edx - 4], ecx
test eax, eax
jg 0x4148e1
mov eax, dword [ebp - 0x4c]
mov ecx, esi
mov dword [esp], eax
call fcn.004dba20
sub esp, 4
jmp 0x4148e1
mov edi, dword [0x5112ac]
lea eax, [edx - 4]
test edi, edi
jne 0x41525a
mov eax, dword [edx - 4]
lea ecx, [eax - 1]
mov dword [edx - 4], ecx
test eax, eax
jg 0x4148f3
mov eax, dword [ebp - 0x4c]
mov ecx, esi
mov dword [esp], eax
call fcn.004dba20
sub esp, 4
jmp 0x4148f3
mov ecx, dword [0x5112ac]
lea eax, [edx - 4]
test ecx, ecx
jne 0x415262
mov eax, dword [edx - 4]
lea ecx, [eax - 1]
mov dword [edx - 4], ecx
test eax, eax
jg 0x4151b1
mov eax, dword [ebp - 0x44]
mov ecx, esi
mov dword [esp], eax
call fcn.004dba20
sub esp, 4
jmp 0x4151b1
call fcn.0050df71
nop
jmp 0x41520a
call fcn.0050df71
jmp 0x41523d
mov ebx, dword [0x5112ac]
lea edx, [eax - 4]
test ebx, ebx
jne 0x4152a6
mov edx, dword [eax - 4]
lea ebx, [edx - 1]
mov dword [eax - 4], ebx
mov eax, edx
test eax, eax
jg 0x414824
mov eax, dword [ebp - 0x44]
mov dword [esp], eax
call fcn.004dba20
sub esp, 4
jmp 0x414824
call fcn.0050df71
jmp 0x4151d7
mov eax, edx
mov dword [ebp - 0x4c], ecx
call fcn.0050df71
mov ecx, dword [ebp - 0x4c]
jmp 0x415281