Function at 0x405760
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x4e8544]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 0x14], 0
xor edi, edi
nop dword [eax]
mov ecx, dword [edi*8 + 0x4e9780]
mov esi, ecx
mov dword [ebp - 0x1c], ecx
lea edx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x405790
mov eax, dword [0x4ece10]
sub esi, edx
push esi
push ecx
inc eax
push eax
call fcn.00486850
add esp, 0xc
test eax, eax
jne 0x4057c5
mov eax, dword [0x4ece10]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.004830f0
add esp, 4
test eax, eax
jne 0x405825
inc edi
cmp edi, 0xa
jb 0x405780
mov edi, 0xa
cmp dword [0x4ec9cc], 0
mov eax, dword [0x4ece10]
lea ecx, [eax + esi]
lea ebx, [ecx + 1]
mov dword [ebp - 0x18], ebx
je 0x40582e
cmp edi, 4
je case.0x405837.4
cmp edi, 9
je case.0x405837.9
push dword [ebp - 0x1c]
push str.__s_is_not_allowed_after_perltest_n
push dword [0x4ece14]
call fcn.00401240
add esp, 0xc
mov eax, 2
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret
mov edi, dword [edi*8 + 0x4e9784]
jmp 0x4057d0
cmp edi, 0xa
ja case.default.0x405837
jmp dword [edi*4 + 0x405f4c]
push eax
push str._Unknown_command:__s
push dword [0x4ece14]
call fcn.00401240
mov eax, dword [ebp - 0x14]
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x14]
mov dword [0x4ecae0], 0x1800
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x14]
mov dword [0x4ec9cc], 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret
push 0
push 0x4ecb40
mov edx, 2
mov ecx, ebx
call fcn.004030c0
add esp, 8
cmp dword [0x4ecbbc], 0
jne case.default.0x405837
test dword [0x4ecb44], 0x80000
je case.default.0x405837
mov eax, dword [ebp - 0x14]
mov dword [0x4ecbbc], 7
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret
push 0x4ecca0
push 0
mov edx, 4
mov ecx, ebx
call fcn.004030c0
mov eax, dword [ebp - 0x14]
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret
xor eax, eax
xor esi, esi
mov word [0x4ece78], ax
mov dword [ebp - 0x10], esi
nop word [eax + eax]
movzx eax, byte [ebx]
push eax
call fcn.004830f0
add esp, 4
test eax, eax
je 0x405955
movzx eax, byte [ebx + 1]
inc ebx
push eax
call fcn.004830f0
add esp, 4
test eax, eax
jne 0x405940
mov dword [ebp - 0x18], ebx
cmp byte [ebx], 0
je 0x405a44
mov edi, 1
mov dword [ebp - 0x20], edi
nop word [eax + eax]
mov ecx, dword [edi*4 + 0x4df474]
mov esi, ecx
mov dword [ebp - 0x24], ecx
lea edx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x405980
sub esi, edx
mov edx, ebx
mov eax, esi
mov dword [ebp - 0x1c], edx
je 0x4059cf
movzx edi, byte [ecx]
dec eax
mov dword [ebp - 0x28], eax
movzx eax, byte [edx]
push eax
call fcn.004835ba
add esp, 4
mov ebx, eax
push edi
call fcn.004835ba
mov ecx, dword [ebp - 0x24]
add esp, 4
mov edx, dword [ebp - 0x1c]
inc ecx
inc edx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x1c], edx
sub ebx, eax
jne 0x4059f9
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x405992
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
movzx eax, byte [esi + ebx]
push eax
call fcn.004830f0
add esp, 4
test eax, eax
je 0x4059ff
cmp edi, 2
je 0x405b71
mov esi, dword [ebp - 0x10]
test si, si
jne 0x405a02
movzx esi, di
mov dword [ebp - 0x10], esi
jmp 0x405a02
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x10]
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 7
jb 0x405970
mov al, byte [ebx]
test al, al
je 0x405930
nop dword [eax]
movzx eax, al
push eax
call fcn.004830f0
add esp, 4
test eax, eax
jne 0x405930
mov al, byte [ebx + 1]
inc ebx
mov dword [ebp - 0x18], ebx
test al, al
jne 0x405a20
jmp 0x405930
mov eax, dword [ebp - 0x14]
mov word [0x4ece78], si
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret
cmp dword [0x4ec814], 0
jg 0x405a91
push str._Cant_pop_off_an_empty_stack_n
push dword [0x4ece14]
call fcn.00401240
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret
push 0xbc
push 0
push 0x4ec9d0
call fcn.0047d540
add esp, 0xc
mov edx, 1
mov ecx, ebx
push 0
push 0x4ec9d0
call fcn.004030c0
add esp, 8
test eax, eax
je 0x405a7b
mov eax, dword [0x4ec814]
cmp edi, 6
jne 0x405ad8
dec eax
mov dword [0x4ec814], eax
mov eax, dword [eax*4 + 0x4eca90]
jmp 0x405ae7
push dword [eax*4 + 0x4eca8c]
call fcn.00430570
add esp, 4
mov ecx, dword [0x4eca4c]
mov dword [0x4ecec8], eax
test ecx, ecx
je 0x405b05
push ecx
push eax
call fcn.0042ed30
add esp, 8
mov dword [0x4ec81c], eax
test dword [0x4ec9d4], 0x200000
je 0x405b16
call fcn.00404030
test dword [0x4ec9d8], 0x8000
je 0x405b27
call fcn.00404270
test dword [0x4ec9d4], 0x220a0
je case.default.0x405837
call fcn.004044b0
test eax, eax
je case.default.0x405837
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret
cmp dword [0x4ec814], 0
jg 0x405b84
push str._No_stacked_patterns_to_save_n
push dword [0x4ece14]
call fcn.00401240
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x10]
add ecx, 2
push str.save
push eax
mov edx, 0x4e2054
call fcn.00405680
add esp, 8
test eax, eax
jne 0x405f3a
push dword [0x4ec844]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
push dword [0x4ec814]
push 0x4eca90
call fcn.00464870
mov esi, eax
add esp, 0x14
test esi, esi
jns 0x405c1f
push dword [ebp - 0x10]
call fcn.00483cc2
add esp, 4
push esi
push str.Serialization
push str._s_failed:_error__d:
push dword [0x4ece14]
call fcn.00401240
push 0x4e059c
mov edx, 0x4e0504
mov ecx, esi
call fcn.00404320
add esp, 0x14
test eax, eax
jne case.default.0x405837
mov eax, 2
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x10]
xor esi, esi
mov eax, dword [ebp - 8]
mov ecx, esi
shr eax, cl
movzx eax, al
push edi
push eax
call fcn.00482c26
add esi, 8
add esp, 8
cmp esi, 0x20
jb 0x405c24
push edi
push dword [ebp - 8]
push 1
push dword [ebp - 0xc]
call fcn.00486b90
add esp, 0x10
cmp eax, dword [ebp - 8]
je 0x405c85
push str._Wrong_return_from_fwrite___n
push dword [0x4ece14]
call fcn.00401240
push edi
call fcn.00483cc2
add esp, 0xc
mov eax, 2
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret
push edi
call fcn.00483cc2
add esp, 4
push dword [ebp - 0xc]
call fcn.00464d70
mov eax, dword [0x4ec814]
add esp, 4
test eax, eax
jle 0x405cc6
dec eax
mov dword [0x4ec814], eax
mov eax, dword [eax*4 + 0x4eca90]
push eax
mov dword [0x4ecec8], eax
call fcn.004304f0
mov eax, dword [0x4ec814]
add esp, 4
test eax, eax
jg 0x405ca2
mov eax, dword [ebp - 0x14]
mov dword [0x4ecec8], 0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x10]
add ecx, 2
push str.load
push eax
mov edx, 0x4e2090
call fcn.00405680
add esp, 8
test eax, eax
jne 0x405f3a
mov edi, dword [ebp - 0x10]
xor esi, esi
mov dword [ebp - 8], eax
nop dword [eax]
push edi
call fcn.00483d39
mov ecx, esi
add esp, 4
shl eax, cl
add esi, 8
mov ecx, dword [ebp - 8]
or ecx, eax
mov dword [ebp - 8], ecx
cmp esi, 0x20
jb 0x405d10
push ecx
call fcn.0048080e
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x405d72
push dword [ebp - 8]
push str._Failed_to_get_memory__size__zu__for_load_n
push dword [0x4ece14]
call fcn.00401240
add esp, 0xc
push edi
call fcn.00483cc2
add esp, 4
mov eax, 2
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret
push edi
push dword [ebp - 8]
push 1
push eax
call fcn.00486e8c
push edi
mov esi, eax
call fcn.00483cc2
add esp, 0x14
cmp esi, dword [ebp - 8]
je 0x405db5
push str._Wrong_return_from_fread___n
push dword [0x4ece14]
call fcn.00401240
add esp, 8
mov dword [ebp - 0x14], 2
push dword [ebp - 0xc]
call fcn.004807f3
jmp 0x405f34
push dword [ebp - 0xc]
call fcn.00464d10
mov esi, eax
add esp, 4
test esi, esi
jns 0x405dd1
push esi
push str.Get_number_of_codes
jmp 0x405e58
mov ecx, dword [0x4ec814]
lea eax, [ecx + esi]
cmp eax, 0x14
jle 0x405e32
cmp esi, 1
mov eax, 0x4e0504
mov edi, 0x4e20f8
cmovne eax, edi
push eax
push esi
push str._Not_enough_space_on_pattern_stack_for__d_pattern_s_n
push dword [0x4ece14]
call fcn.00401240
mov esi, 0x14
mov eax, 0x4e0504
sub esi, dword [0x4ec814]
cmp esi, 1
cmovne eax, edi
push eax
push esi
push str._Decoding__d_pattern_s_n
push dword [0x4ece14]
call fcn.00401240
mov ecx, dword [0x4ec814]
add esp, 0x20
push dword [0x4ec844]
lea eax, [ecx*4 + 0x4eca90]
push dword [ebp - 0xc]
push esi
push eax
call fcn.00464a90
mov esi, eax
add esp, 0x10
test esi, esi
jns 0x405e94
push esi
push str.Deserialization
push str._s_failed:_error__d:
push dword [0x4ece14]
call fcn.00401240
push 0x4e059c
mov edx, 0x4e0504
mov ecx, esi
call fcn.00404320
add esp, 0x14
test eax, eax
jne 0x405e9a
push dword [ebp - 0xc]
mov dword [ebp - 0x14], 2
call fcn.004807f3
jmp 0x405f34
add dword [0x4ec814], esi
push dword [ebp - 0xc]
call fcn.004807f3
jmp 0x405f34
lea eax, [ebp - 0x10]
add ecx, 2
push str.loadtables
push eax
mov edx, 0x4e2090
call fcn.00405680
add esp, 8
test eax, eax
jne 0x405f3a
mov eax, dword [0x4eced4]
mov esi, dword [ebp - 0x10]
test eax, eax
jne 0x405efa
push 0x4ececc
push 0xf
call fcn.00472c70
push dword [0x4ececc]
call fcn.0048080e
add esp, 0xc
mov dword [0x4eced4], eax
test eax, eax
jne 0x405efa
push str._Failed:_malloc_failed_for_loadtables_n
jmp 0x405f19
push esi
push dword [0x4ececc]
push 1
push eax
call fcn.00486e8c
add esp, 0x10
cmp eax, dword [0x4ececc]
je 0x405f2e
push str._Wrong_return_from_fread___n
push dword [0x4ece14]
call fcn.00401240
mov dword [ebp - 0x14], 2
add esp, 8
push esi
call fcn.00483cc2
add esp, 4
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0047be9b
mov esp, ebp
pop ebp
ret