Function at 0x409130
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x1118
call fcn.00412260
push ebx
push esi
push edi
mov esi, ecx
lea ecx, [esp + 0xc]
push ebp
push 0
mov ebx, 0xffffffff
push 0
call fcn.00404a50
mov dword [esp + 0x38], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x34], 0
push 0
push 0x57
call fcn.00411b10
mov dword [esp + 0x4c], eax
add esp, 8
push 0
push 0x5a
call fcn.00411b10
mov dword [esp + 0x54], eax
add esp, 8
push 0
push 0x61
call fcn.00411b10
mov dword [esp + 0x58], eax
add esp, 8
push 0
push 0x75
call fcn.00411b10
mov dword [esp + 0x5c], eax
add esp, 8
push 0
push 0x76
call fcn.00411b10
mov dword [esp + 0x60], eax
add esp, 8
push 0
push 0x5b
call fcn.00411b10
mov dword [esp + 0x64], eax
add esp, 8
push 0
push 0x63
call fcn.00411b10
mov dword [esp + 0x68], eax
add esp, 8
push 0
push 0x77
call fcn.00411b10
mov dword [esp + 0x7c], eax
add esp, 8
push 0
push 0x78
call fcn.00411b10
add esp, 8
mov dword [esp + 0xa0], eax
push 0
push 0x79
call fcn.00411b10
mov dword [esp + 0xa4], eax
add esp, 8
push 0
push 0x7a
call fcn.00411b10
add esp, 8
push 0
push 0x5c
call fcn.00411b10
mov dword [esp + 0x6c], eax
add esp, 8
push 0
push 0x5d
call fcn.00411b10
mov dword [esp + 0x70], eax
add esp, 8
push 0
push 0x5e
call fcn.00411b10
mov dword [esp + 0x74], eax
add esp, 8
push 0
push 0x5f
call fcn.00411b10
mov dword [esp + 0x78], eax
add esp, 8
push 0
push 0x6e
call fcn.00411b10
mov dword [esp + 0x8c], eax
add esp, 8
push 0
push 0x6f
call fcn.00411b10
mov dword [esp + 0x90], eax
add esp, 8
push 0
push 0x70
call fcn.00411b10
mov dword [esp + 0x94], eax
add esp, 8
push 0
push 0x71
call fcn.00411b10
mov dword [esp + 0x98], eax
add esp, 8
push 0
push 0x60
call fcn.00411b10
mov dword [esp + 0x9c], eax
add esp, 8
push 0
push 0x72
call fcn.00411b10
mov dword [esp + 0x80], eax
add esp, 8
push 0
push 0x73
call fcn.00411b10
mov dword [esp + 0x84], eax
add esp, 8
push 0
push 0x74
call fcn.00411b10
mov dword [esp + 0x88], eax
add esp, 8
push 0
push 0x64
call fcn.00411b10
mov dword [esp + 0x50], eax
add esp, 8
push 0
push 0x62
call fcn.00411b10
mov edi, dword [esp + 0x1138]
mov dword [esp + 0x38], eax
add edi, 4
add dword [esp + 0x1134], ebx
add esp, 8
cmp dword [edi], 0
je 0x40982c
cmp dword [0x41666c], 0
mov eax, dword [edi]
jne 0x409354
cmp byte [eax], 0x2f
jne 0x40982c
jmp 0x40935e
cmp word [eax], 0x2f
jne 0x40982c
mov eax, dword [esp + 0x44]
push eax
call dword [0x416604]
add esp, 4
mov ebp, eax
mov ecx, dword [edi]
push ebp
mov eax, dword [esp + 0x48]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
je 0x409abf
mov eax, dword [esp + 0x48]
push eax
call dword [0x416604]
add esp, 4
mov ebp, eax
mov ecx, dword [edi]
push ebp
mov eax, dword [esp + 0x4c]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
je 0x409a44
mov eax, dword [esp + 0x4c]
push eax
call dword [0x416604]
add esp, 4
mov ebp, eax
mov ecx, dword [edi]
push ebp
mov eax, dword [esp + 0x50]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
je 0x409a26
mov eax, dword [esp + 0x50]
push eax
call dword [0x416604]
add esp, 4
mov ebp, eax
mov ecx, dword [edi]
push ebp
mov eax, dword [esp + 0x54]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
je 0x409a07
mov eax, dword [esp + 0x54]
push eax
call dword [0x416604]
add esp, 4
mov ebp, eax
mov ecx, dword [edi]
push ebp
mov eax, dword [esp + 0x58]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
je 0x4099e8
mov eax, dword [esp + 0x58]
push eax
call dword [0x416604]
add esp, 4
mov ebp, eax
mov ecx, dword [edi]
push ebp
mov eax, dword [esp + 0x5c]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
je 0x4099c9
mov eax, dword [esp + 0x5c]
push eax
call dword [0x416604]
add esp, 4
mov ebp, eax
mov ecx, dword [edi]
push ebp
mov eax, dword [esp + 0x60]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
je 0x40999a
mov eax, dword [esp + 0x60]
push eax
call dword [0x416604]
add esp, 4
mov ebp, eax
mov ecx, dword [edi]
push ebp
mov eax, dword [esp + 0x64]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
je 0x40997d
mov eax, dword [esp + 0x64]
push eax
call dword [0x416604]
add esp, 4
mov ebp, eax
mov ecx, dword [edi]
push ebp
mov eax, dword [esp + 0x68]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
je 0x409960
mov eax, dword [esp + 0x68]
push eax
call dword [0x416604]
add esp, 4
mov ebp, eax
mov ecx, dword [edi]
push ebp
mov eax, dword [esp + 0x6c]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
je 0x409941
mov eax, dword [esp + 0x6c]
push eax
call dword [0x416604]
add esp, 4
mov ecx, dword [edi]
push eax
mov eax, dword [esp + 0x70]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
jne 0x409535
mov dword [esi + 0x5c8], 2
jmp 0x409af1
mov eax, dword [esp + 0x70]
push eax
call dword [0x416604]
add esp, 4
mov ecx, dword [edi]
push eax
mov eax, dword [esp + 0x74]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
jne 0x409566
mov dword [esp + 0x20], 1
jmp 0x409af1
mov eax, dword [esp + 0x74]
push eax
call dword [0x416604]
add esp, 4
mov ebp, eax
mov ecx, dword [edi]
push ebp
mov eax, dword [esp + 0x78]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
je 0x4098da
mov eax, dword [esp + 0x78]
push eax
call dword [0x416604]
add esp, 4
mov ebp, eax
mov ecx, dword [edi]
push ebp
mov eax, dword [esp + 0x7c]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
jne 0x4095f4
lea eax, [esp + 0x98]
mov ecx, dword [0x416624]
mov dword [esp + 0x24], 1
imul ebp, dword [0x4165b4]
push eax
add ebp, dword [edi]
push ecx
push ebp
call fcn.00404b60
add esp, 0xc
mov ecx, esi
push eax
push 0x422
mov eax, dword [esi]
call dword [eax + 0x9c]
jmp 0x409af1
mov eax, dword [esp + 0x7c]
push eax
call dword [0x416604]
add esp, 4
mov ebp, eax
mov ecx, dword [edi]
push ebp
mov eax, dword [esp + 0x80]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
jne 0x40965b
lea eax, [esp + 0x98]
mov ecx, dword [0x416624]
mov dword [esp + 0x24], 1
imul ebp, dword [0x4165b4]
push eax
add ebp, dword [edi]
push ecx
push ebp
call fcn.00404b60
add esp, 0xc
mov ecx, esi
push eax
push 0x423
mov eax, dword [esi]
call dword [eax + 0x9c]
jmp 0x409af1
mov eax, dword [esp + 0x80]
push eax
call dword [0x416604]
add esp, 4
mov ecx, dword [edi]
push eax
mov eax, dword [esp + 0x84]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
jne 0x409694
mov dword [esi + 0x804], 1
jmp 0x409af1
mov eax, dword [esp + 0x84]
push eax
call dword [0x416604]
add esp, 4
mov ecx, dword [edi]
push eax
mov eax, dword [esp + 0x88]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
je 0x409b35
mov eax, dword [esp + 0x88]
push eax
call dword [0x416604]
add esp, 4
mov ecx, dword [edi]
push eax
mov eax, dword [esp + 0x8c]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
je 0x409b35
mov eax, dword [esp + 0x8c]
push eax
call dword [0x416604]
add esp, 4
mov ecx, dword [edi]
push eax
mov eax, dword [esp + 0x90]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
je 0x409b35
mov eax, dword [esp + 0x90]
push eax
call dword [0x416604]
add esp, 4
mov ecx, dword [edi]
push eax
mov eax, dword [esp + 0x94]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
jne 0x40989d
mov dword [esi + 0x808], 1
cmp dword [esi + 0x584], 1
sbb eax, eax
push 0xfffffffffffffff6
neg eax
cmp dword [esi + 0x580], 1
mov dword [esp + 0x3c], eax
sbb eax, eax
inc eax
mov dword [esi + 0x5c8], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edi, eax
push 0x400000
lea ecx, [esp + 0x14]
push 0x4000
call fcn.00404aa0
lea ecx, [esp + 0x2c]
push 0
mov eax, dword [esp + 0x18]
push ecx
sub eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x1c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x409801
xor ebp, ebp
cmp dword [esp + 0x2c], ebp
jbe 0x409801
mov eax, dword [esp + 0x2c]
add dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x14], ecx
jne 0x4097de
lea ecx, [esp + 0x10]
push 0x4000
call fcn.00404b20
lea eax, [esp + 0x2c]
push ebp
push eax
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x1c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4097b8
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov byte [eax + ecx], 0
lea eax, [esp + 0x112c]
mov ecx, dword [esp + 0x10]
push eax
push ecx
call fcn.00404de0
add esp, 8
mov edi, eax
test edi, edi
jne 0x409afb
mov ecx, esi
call fcn.00407e50
sub eax, 3
cmp eax, 1
sbb eax, eax
neg eax
mov dword [esp + 0xa0], eax
cmp ebx, 0xffffffff
jne 0x40986d
mov eax, dword [esi]
push 0x4155d0
push 0x3ee
mov ecx, esi
mov ebx, dword [eax + 0x98]
call ebx
push 0x4155d0
mov ecx, esi
push 0x3ef
call ebx
lea ecx, [esp + 0x3c]
xor ebx, ebx
call fcn.00404e60
cmp dword [edi], ebx
je 0x409c5f
cmp dword [0x41666c], 0
mov eax, dword [edi]
jne 0x409bf3
cmp byte [eax], 0x2f
je 0x409c5f
jmp 0x409bf9
mov eax, dword [esp + 0x94]
push eax
call dword [0x416604]
add esp, 4
mov ecx, dword [edi]
push eax
mov eax, dword [esp + 0x98]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
jne 0x409b09
mov dword [esi + 0x7e0], 1
jmp 0x409af1
mov eax, dword [esp + 0xa0]
push eax
mov eax, ebp
imul eax, dword [0x4165b4]
add eax, dword [edi]
push eax
call dword [0x4165d8]
test eax, eax
jne 0x409907
mov dword [esi + 0x800], 1
jmp 0x409af1
imul ebp, dword [0x4165b4]
mov eax, dword [esp + 0x9c]
add ebp, dword [edi]
push eax
push ebp
call dword [0x4165d8]
test eax, eax
jne 0x409932
mov dword [esi + 0x800], 2
jmp 0x409af1
mov dword [esi + 0x800], 0
jmp 0x409af1
imul ebp, dword [0x4165b4]
push 1
add ebp, dword [edi]
push ebp
call fcn.00409020
add esp, 8
mov dword [esi + 0x5c8], eax
jmp 0x409af1
imul ebp, dword [0x4165b4]
push 1
add ebp, dword [edi]
push ebp
call fcn.00409020
mov dword [esp + 0x40], eax
add esp, 8
jmp 0x409af1
imul ebp, dword [0x4165b4]
push 1
add ebp, dword [edi]
push ebp
call fcn.00409020
mov dword [esp + 0x30], eax
add esp, 8
jmp 0x409af1
imul ebp, dword [0x4165b4]
push 0
add ebp, dword [edi]
push ebp
call fcn.00409020
add esp, 8
mov ecx, dword [esi + 0x2c]
cmp eax, 1
sbb eax, eax
inc eax
push eax
push 0x3f4
push ecx
call dword [sym.imp.USER32.dll_CheckDlgButton]
jmp 0x409af1
imul ebp, dword [0x4165b4]
push 1
add ebp, dword [edi]
push ebp
call fcn.00409020
add esp, 8
mov dword [esi + 0x818], eax
jmp 0x409af1
imul ebp, dword [0x4165b4]
push 1
add ebp, dword [edi]
push ebp
call fcn.00409020
add esp, 8
mov dword [esi + 0x81c], eax
jmp 0x409af1
imul ebp, dword [0x4165b4]
push 1
add ebp, dword [edi]
push ebp
call fcn.00409020
add esp, 8
mov dword [esi + 0x828], eax
jmp 0x409af1
mov eax, dword [esi]
mov ecx, esi
imul ebp, dword [0x4165b4]
add ebp, dword [edi]
push ebp
push 0x3f1
call dword [eax + 0x9c]
jmp 0x409af1
imul ebp, dword [0x4165b4]
add ebp, dword [edi]
lea ecx, [esi + 0x530]
push ebp
call fcn.0040c110
cmp eax, 0xffffffff
mov ebx, eax
je 0x409b99
push ebx
mov ecx, esi
call fcn.0040acb0
lea edx, [esi + 0x5ac]
lea ecx, [ebx*4]
mov eax, dword [edx]
cmp dword [0x41666c], 0
mov ebp, dword [eax + ecx]
mov eax, dword [ebp + 0x24]
jne 0x409a91
cmp byte [eax], 0
jne 0x409ab5
jmp 0x409a97
cmp word [eax], 0
jne 0x409ab5
mov eax, dword [edx]
cmp dword [0x41666c], 0
mov ecx, dword [eax + ecx]
mov edx, dword [ecx + 0x28]
jne 0x409aaf
cmp byte [edx], 0
je 0x409af1
jmp 0x409ab5
cmp word [edx], 0
je 0x409af1
mov dword [esp + 0x34], 1
jmp 0x409af1
imul ebp, dword [0x4165b4]
add ebp, dword [edi]
push ebp
call fcn.004090f0
add esp, 4
cmp eax, 0xffffffff
push 0
je 0x409bc7
push eax
mov ecx, esi
push 0x14e
mov eax, dword [esi]
push 0x3fd
call dword [eax + 0xd8]
add edi, 4
dec dword [esp + 0x112c]
cmp dword [edi], 0
jne 0x40933e
jmp 0x40982c
push 0
mov eax, dword [edi]
push eax
push 0
push 0x31
call fcn.00411b10
add esp, 8
mov ecx, esi
push eax
mov eax, dword [esi]
call dword [eax + 0xb8]
lea ecx, [esp + 0x10]
call fcn.00404a80
xor eax, eax
jmp 0x409ee9
lea ecx, [esp + 0xa0]
push esi
call fcn.004046a0
mov edi, dword [eax]
mov ebx, eax
push 1
push 0x415554
push 0
push 0x1f
call fcn.0040ae90
add esp, 8
mov ecx, ebx
push eax
call dword [edi + 0x144]
dec eax
lea ecx, [esp + 0xa0]
cmp eax, 1
sbb edi, edi
call fcn.004046f0
neg edi
test edi, edi
je 0x409b89
add esi, 0x530
push esi
call fcn.00402c30
add esp, 4
lea ecx, [esp + 0x10]
call fcn.00404a80
xor eax, eax
jmp 0x409ee9
push 0
push str.Illegal_Command
push 0
push 0x45
call fcn.0040ae90
add esp, 8
mov ecx, esi
push eax
mov eax, dword [esi]
call dword [eax + 0xb4]
lea ecx, [esp + 0x10]
call fcn.00404a80
xor eax, eax
jmp 0x409ee9
push str.Illegal_Command
push 0
push 0x31
call fcn.0040ae90
add esp, 8
mov ecx, esi
push eax
mov eax, dword [esi]
call dword [eax + 0xb4]
lea ecx, [esp + 0x10]
call fcn.00404a80
xor eax, eax
jmp 0x409ee9
cmp word [eax], 0x2f
je 0x409c5f
cmp dword [esi + 0x808], 0
mov ebp, dword [edi]
je 0x409c34
cmp dword [esp + 0xa0], 0
jne 0x409c34
lea eax, [esp + 0xe8]
push eax
push ebp
call fcn.00405a50
add esp, 8
test eax, eax
je 0x409c34
mov dword [esi + 0x80c], 1
lea ebp, [esp + 0xe8]
lea ecx, [esp + 0x3c]
push ebp
add edi, 4
call fcn.004050b0
push ebp
call dword [0x416604]
dec dword [esp + 0x1130]
add esp, 4
lea ebx, [eax + ebx + 3]
cmp dword [edi], 0
jne 0x409880
lea eax, [ebx*2]
push eax
call sub.MSVCRT40.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov ebp, eax
mov eax, dword [0x4165fc]
mov ecx, dword [0x416610]
push eax
push ecx
lea ecx, [esp + 0x44]
push ebx
push ebp
call fcn.00404f50
test eax, eax
je 0x409c9d
push ebp
mov eax, dword [esi]
push 0x3ee
mov ecx, esi
call dword [eax + 0x9c]
push ebp
call sub.MSVCRT40.dll_void___cdecl_operator_delete_void__
add esp, 4
cmp dword [esp + 0x112c], 1
jne 0x409d87
mov eax, dword [esp + 0x30]
push eax
call dword [0x416604]
add esp, 4
mov ecx, dword [edi]
push eax
mov eax, dword [esp + 0x34]
push eax
push ecx
call dword [0x4165ac]
add esp, 0xc
test eax, eax
jne 0x409d7f
mov eax, dword [esp + 0x30]
push eax
call dword [0x416604]
imul eax, dword [0x4165b4]
add esp, 4
add eax, dword [edi]
cmp dword [esi + 0x808], 0
mov edi, eax
je 0x409d1a
lea eax, [esp + 0xe8]
push eax
push edi
call fcn.00405a50
add esp, 8
test eax, eax
je 0x409d1a
lea edi, [esp + 0xe8]
push edi
mov eax, dword [esi]
push 0x3ef
mov ecx, esi
call dword [eax + 0x9c]
cmp dword [esp + 0x24], 0
jne 0x409d3c
cmp dword [esp + 0x34], 0
je 0x409dc0
mov ecx, esi
call fcn.00407e50
cmp eax, 2
jne 0x409dc0
push 0
push 0x415554
push 0
push 0x42
call fcn.0040ae90
add esp, 8
mov ecx, esi
push eax
mov eax, dword [esi]
call dword [eax + 0xb4]
lea ecx, [esp + 0x3c]
call fcn.00404e90
lea ecx, [esp + 0x10]
call fcn.00404a80
xor eax, eax
jmp 0x409ee9
cmp dword [esp + 0x112c], 1
jl 0x409d2a
push 0
push str.Too_few_many_argument
push 0
push 0x31
call fcn.0040ae90
add esp, 8
mov ecx, esi
push eax
mov eax, dword [esi]
call dword [eax + 0xb4]
lea ecx, [esp + 0x3c]
call fcn.00404e90
lea ecx, [esp + 0x10]
call fcn.00404a80
xor eax, eax
jmp 0x409ee9
mov edi, dword [esi]
push 0x3ee
mov ecx, esi
mov ebx, dword [edi + 0xa8]
call ebx
push eax
call dword [0x41663c]
test eax, eax
je 0x409dfa
cmp dword [esp + 0xa0], 0
jne 0x409e15
push 0x3ef
mov ecx, esi
call ebx
push eax
call dword [0x41663c]
test eax, eax
jne 0x409e15
mov dword [esp + 0x20], 1
cmp dword [esi + 0x808], 0
je 0x409e15
mov dword [esi + 0x5c8], 0
cmp dword [esp + 0x24], 0
je 0x409e2c
cmp dword [esp + 0x34], 0
jne 0x409e2c
push 1
mov ecx, esi
call fcn.00407e80
mov eax, dword [esp + 0xa0]
mov ecx, esi
push eax
call fcn.0040aae0
cmp dword [esi + 0x800], 0
je 0x409e4b
mov ecx, esi
call fcn.0040ab80
cmp dword [esp + 0xa0], 0
jne 0x409e90
cmp dword [esp + 0x28], 0
jne 0x409e7c
cmp dword [esi + 0x808], 0
jne 0x409e90
cmp dword [esp + 0x20], 0
jne 0x409e90
cmp dword [esi + 0x568], 0
je 0x409e90
cmp dword [esp + 0x28], 0
jne 0x409e90
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x2c]
push eax
push 0x421
push ecx
call dword [sym.imp.USER32.dll_CheckDlgButton]
cmp dword [esp + 0x38], 0
jne 0x409eb5
cmp dword [esp + 0x20], 0
jne 0x409eb5
push 0x415554
mov eax, dword [esi + 0x5b4]
push eax
mov ecx, esi
push 0
call fcn.00409f00
jmp 0x409ebc
push 0xa
mov ecx, esi
call dword [edi + 4]
cmp dword [esp + 0x20], 0
je 0x409eca
mov esi, 1
jmp 0x409ed5
push 4
mov ecx, esi
call fcn.00407fa0
mov esi, eax
lea ecx, [esp + 0x3c]
call fcn.00404e90
lea ecx, [esp + 0x10]
call fcn.00404a80
mov eax, esi
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1118
ret 8