Function at 0x403a10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x154
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp + 0x24]
mov dword [esp + 0x148], eax
mov eax, dword [ebp + 0x10]
mov ecx, 0x4afde2
mov dword [esp + 0x144], edx
xor edx, edx
mov word [0x4afde8], dx
mov edx, 0x18
mov word [0x4afdea], dx
movzx edx, word [ebx]
mov word [ecx], dx
movzx edx, byte [ebx + 2]
mov byte [ecx + 2], dl
movzx ecx, byte [0x4afde2]
movzx edx, byte [0x4afde3]
shl ecx, 8
or ecx, edx
cmp ecx, 0x5433
jne 0x404482
mov ebx, 3
mov word [0x4afde8], bx
mov edx, 0x80
mov ecx, 0x4afde2
mov ebx, 0x48f9c8
mov word [0x4afdea], dx
movzx edx, word [ebx]
mov word [ecx], dx
movzx edx, byte [ebx + 2]
mov byte [ecx + 2], dl
movzx ecx, byte [0x4afde2]
movzx edx, byte [0x4afde3]
shl ecx, 8
or ecx, edx
mov dword [esp + 0x14c], edi
mov dword [esp + 0x150], eax
mov edx, 0xa
mov ebx, 1
movzx edi, byte [ebx*2 + 0x4a08de]
movzx eax, byte [ebx*2 + 0x4a08df]
shl edi, 8
or edi, eax
cmp ecx, edi
je 0x403b7d
add ebx, 1
add edx, 0xffffffff
test edx, edx
jg 0x403adf
mov edi, dword [esp + 0x14c]
mov edx, 0xc
cmp edx, 0xa
je 0x403b66
cmp edx, 0x1d
je 0x403b4f
cmp edx, 0x15
je 0x403b38
mov eax, 0xfffffff1
mov word [edi], ax
add esp, 0x154
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 0x20
mov eax, 0xfffffff8
mov word [edi], ax
add esp, 0x154
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 0x20
mov eax, 0xfffffffa
mov word [edi], ax
add esp, 0x154
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 0x20
mov eax, 0xfffffffe
mov word [edi], ax
add esp, 0x154
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 0x20
mov edi, dword [esp + 0x14c]
mov eax, dword [esp + 0x150]
mov dword [esp + 0x14c], edi
mov dword [esp + 0x150], eax
mov ecx, 0xa
mov edx, 1
lea eax, [edx + edx]
movsx edi, word [eax + 0x4a58ee]
test edi, edi
je 0x403bd1
add edx, 1
add ecx, 0xffffffff
test ecx, ecx
jg 0x403ba3
mov edi, dword [esp + 0x14c]
xor eax, eax
mov word [esi], ax
mov edx, 0xa
jmp 0x403b12
mov edi, dword [esp + 0x14c]
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x150]
add edx, 0x32
mov word [esi], dx
xor edx, edx
mov word [edi], dx
movsx edx, word [ecx]
test edx, edx
mov dword [esp + 0x140], edx
jl 0x404471
xor ecx, ecx
push ecx
cdq
push edx
push eax
mov eax, dword [esp + 0x154]
push eax
push ecx
push 0x200
push 0x4a56c0
call fcn.00416074
push 0
push 1
push 0x48f9d0
push 0x200
push 0x4a56c0
call fcn.00415e74
add esp, 0x30
mov word [0x4afde6], ax
movsx edx, ax
test edx, edx
jne 0x403c71
push 0
push 1
push 0x48f9d4
push 0x200
push 0x4a56c0
call fcn.00415e74
add esp, 0x14
mov word [0x4afde6], ax
movsx edx, word [0x4afdea]
cmp edx, 0x18
je 0x4043a5
movsx eax, word [0x4afde8]
cmp eax, 9
je 0x40439b
mov ecx, 0x4a08c0
mov dword [esp + 0x110], 0
lea edx, [esp + 0x110]
lea eax, [esp + 0x130]
mov dword [esp + 0x130], 0xe
mov dword [esp + 0x134], 0x4afdc0
push ecx
push eax
push 0x48f8a0
push 0x384ff00
push edx
call fcn.0041c530
add esp, 0x14
movsx eax, word [0x4afde6]
movsx ecx, ax
lea eax, [ecx - 1]
movzx edx, byte [eax + 0x4a56c0]
cmp edx, 0x20
jne 0x403d2d
neg eax
add eax, 0x200
test eax, eax
jle 0x40403b
mov dword [esp + 0x138], ebx
lea ecx, [ecx + 0x4a56bf]
cdq
xor ebx, ebx
push ebx
push ebx
push 0xe
push 0x4afdc0
push edx
push eax
push ecx
mov ebx, dword [esp + 0x154]
call fcn.00416074
add esp, 0x1c
movzx eax, byte [0x4afde4]
cmp eax, 0x46
jne 0x403dc7
mov byte [0x4afdce], 0x46
mov eax, 0x54
mov edx, 0x20
mov ecx, 0x54
mov byte [0x4afdcf], 0x4f
mov byte [0x4afdd3], al
mov byte [0x4afdd4], al
mov byte [0x4afdd0], 0x52
mov eax, 0x20
mov byte [0x4afdd1], 0x4d
mov byte [0x4afdd7], dl
mov byte [0x4afdd8], dl
mov byte [0x4afdd2], 0x41
mov byte [0x4afdd5], 0x45
mov byte [0x4a58c3], cl
mov byte [0x4a58c4], al
mov byte [0x4afdd6], 0x44
mov byte [0x4a58c0], 0x4c
mov byte [0x4a58c5], al
mov byte [0x4a58c6], al
mov byte [0x4a58c1], 0x49
mov byte [0x4a58c2], 0x53
jmp 0x403ea0
cmp eax, 0x43
jne 0x403e3a
mov byte [0x4afdce], 0x46
mov eax, 0x54
mov ecx, 0x4a58c0
mov edx, str.FORTRAN
mov byte [0x4afdcf], 0x4f
mov byte [0x4afdd3], al
mov byte [0x4afdd4], al
mov byte [0x4afdd0], 0x52
mov eax, 0x20
mov byte [0x4afdd1], 0x4d
mov byte [0x4afdd7], al
mov byte [0x4afdd8], al
mov byte [0x4afdd2], 0x41
mov byte [0x4afdd5], 0x45
mov byte [0x4afdd6], 0x44
mov eax, dword [edx]
mov dword [ecx], eax
movzx eax, word [edx + 4]
mov word [ecx + 4], ax
movzx eax, byte [edx + 6]
mov byte [ecx + 6], al
jmp 0x403ea0
cmp eax, 0x55
je 0x403e49
mov edx, 0xc
jmp 0x403b12
mov ecx, 0x4afdce
mov edx, str.UNFORMATTED
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
movzx eax, word [edx + 8]
mov word [ecx + 8], ax
movzx eax, byte [edx + 0xa]
mov byte [ecx + 0xa], al
mov byte [0x4a58c1], 0x4f
mov eax, 0x4e
mov edx, 0x20
mov byte [0x4a58c0], al
mov byte [0x4a58c3], 0x45
mov byte [0x4a58c2], al
mov byte [0x4a58c4], dl
mov byte [0x4a58c5], dl
mov byte [0x4a58c6], dl
lea eax, [ebx - 1]
cmp eax, 9
ja case.0x403eaf.1
mov eax, dword [eax*4 + 0x48f8a8]
jmp eax
mov ecx, 0x4afdda
mov edx, str.UNKNOWN
mov eax, dword [edx]
mov dword [ecx], eax
movzx eax, word [edx + 4]
mov word [ecx + 4], ax
movzx eax, byte [edx + 6]
mov byte [ecx + 6], al
jmp 0x403f2e
mov byte [0x4afdda], 0x4e
mov eax, 0x20
mov byte [0x4afddd], al
mov byte [0x4afddb], 0x45
mov byte [0x4afdde], al
mov byte [0x4afddc], 0x57
mov byte [0x4afddf], al
mov byte [0x4afde0], al
jmp 0x403f2e
mov byte [0x4afdda], 0x4f
mov eax, 0x20
mov byte [0x4afddd], al
mov byte [0x4afddb], 0x4c
mov byte [0x4afdde], al
mov byte [0x4afddc], 0x44
mov byte [0x4afddf], al
mov byte [0x4afde0], al
mov eax, dword [esp + 0x144]
movsx eax, word [eax]
test eax, eax
jle 0x404112
cmp ebx, 0xa
je 0x404042
mov eax, dword [esp + 0x140]
movsx ecx, word [esi]
mov dword [esp + 0x110], 0
mov dword [esp + 0xe8], 0x200
mov dword [esp + 0x108], eax
lea ebx, [esp + 0x110]
mov dword [esp + 0xec], 0x4a56c0
lea edx, [esp + 0xe8]
mov dword [esp + 0xf0], 7
mov dword [esp + 0xf4], 0x4afdda
mov dword [esp + 0xf8], 6
mov dword [esp + 0xfc], 0x48fa44
mov dword [esp + 0x100], 0xb
mov dword [esp + 0x104], 0x4afdce
push edx
push 0x48f948
push 0x384ff03
push ecx
push ebx
call fcn.0041a82c
add esp, 0x14
movsx edx, ax
test eax, eax
jg 0x403b12
movzx edx, byte [0x4afde3]
movsx ecx, word [esi]
xor eax, eax
mov word [edi], ax
cmp edx, 0x44
jne 0x40401e
mov eax, dword [esp + 0x13c]
neg ecx
mov word [eax + 0x4a58ee], cx
add esp, 0x154
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 0x20
mov eax, dword [esp + 0x13c]
mov word [eax + 0x4a58ee], cx
add esp, 0x154
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 0x20
xor eax, eax
jmp 0x403d02
mov eax, dword [esp + 0x140]
movsx ebx, word [esi]
mov dword [esp + 0x110], 0
mov edx, 6
mov dword [esp + 0xb0], 0x200
mov dword [esp + 0xc0], edx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xb4], 0x4a56c0
mov dword [esp + 0xb8], 7
mov dword [esp + 0xdc], edx
lea eax, [esp + 0x110]
mov dword [esp + 0xbc], 0x4afdda
lea ecx, [esp + 0xb0]
mov dword [esp + 0xc4], str.DIRECT
mov dword [esp + 0xc8], 0xb
mov dword [esp + 0xcc], 0x4afdce
mov dword [esp + 0xd4], 4
mov dword [esp + 0xd8], str.READ
mov dword [esp + 0xe0], str.DENYWR
push ecx
push 0x48f964
push 0x384ff03
push ebx
push eax
call fcn.0041a82c
add esp, 0x14
movsx edx, ax
test eax, eax
jg 0x403b12
jmp 0x403feb
cmp ebx, 0xa
je 0x40424e
test eax, eax
jne 0x4041bc
movsx edx, word [esi]
mov dword [esp + 0x110], 0
lea ecx, [esp + 0x110]
mov dword [esp + 0x90], 0x200
lea eax, [esp + 0x90]
mov dword [esp + 0x94], 0x4a56c0
mov dword [esp + 0x98], 7
mov dword [esp + 0x9c], 0x4afdda
mov dword [esp + 0xa0], 0xa
mov dword [esp + 0xa4], 0x48fa00
mov dword [esp + 0xa8], 0xb
mov dword [esp + 0xac], 0x4afdce
push eax
push 0x48f8ec
push 0x384ff03
push edx
push ecx
call fcn.0041a82c
add esp, 0x14
movsx edx, ax
test eax, eax
jg 0x403b12
jmp 0x403feb
mov eax, dword [esp + 0x140]
movsx ecx, word [esi]
mov dword [esp + 0x110], 0
mov dword [esp + 0x68], 0x200
mov dword [esp + 0x88], eax
lea ebx, [esp + 0x110]
mov dword [esp + 0x6c], 0x4a56c0
lea edx, [esp + 0x68]
mov dword [esp + 0x70], 7
mov dword [esp + 0x74], 0x4afdda
mov dword [esp + 0x78], 0xa
mov dword [esp + 0x7c], 0x48f9f4
mov dword [esp + 0x80], 0xb
mov dword [esp + 0x84], 0x4afdce
push edx
push 0x48f8d0
push 0x384ff03
push ecx
push ebx
call fcn.0041a82c
add esp, 0x14
movsx edx, ax
test eax, eax
jg 0x403b12
jmp 0x403feb
test eax, eax
jne 0x4042f4
movsx edx, word [esi]
mov dword [esp + 0x110], 0
lea ecx, [esp + 0x110]
mov dword [esp + 0x38], 0x200
lea eax, [esp + 0x38]
mov dword [esp + 0x3c], 0x4a56c0
mov dword [esp + 0x40], 7
mov dword [esp + 0x44], 0x4afdda
mov dword [esp + 0x48], 0xa
mov dword [esp + 0x4c], 0x48fa28
mov dword [esp + 0x50], 0xb
mov dword [esp + 0x54], 0x4afdce
mov dword [esp + 0x58], 4
mov dword [esp + 0x5c], 0x48fa34
mov dword [esp + 0x60], 6
mov dword [esp + 0x64], 0x48fa3c
push eax
push 0x48f928
push 0x384ff03
push edx
push ecx
call fcn.0041a82c
add esp, 0x14
movsx edx, ax
test eax, eax
jg 0x403b12
jmp 0x403feb
mov eax, dword [esp + 0x140]
movsx ecx, word [esi]
mov dword [esp + 0x110], 0
mov dword [esp], 0x200
mov dword [esp + 0x30], eax
lea ebx, [esp + 0x110]
mov dword [esp + 4], 0x4a56c0
lea edx, [esp]
mov dword [esp + 8], 7
mov dword [esp + 0xc], 0x4afdda
mov dword [esp + 0x10], 0xa
mov dword [esp + 0x14], 0x48fa0c
mov dword [esp + 0x18], 0xb
mov dword [esp + 0x1c], 0x4afdce
mov dword [esp + 0x20], 4
mov dword [esp + 0x24], 0x48fa18
mov dword [esp + 0x28], 6
mov dword [esp + 0x2c], 0x48fa20
push edx
push 0x48f904
push 0x384ff03
push ecx
push ebx
call fcn.0041a82c
add esp, 0x14
movsx edx, ax
test eax, eax
jg 0x403b12
jmp 0x403feb
mov ecx, str.6_7
jmp 0x403c96
movzx edx, byte [0x4afde3]
cmp edx, 0x54
jne 0x404413
mov byte [0x4afdc0], 0x2e
mov edx, 0x20
mov byte [0x4afdc4], dl
mov byte [0x4afdc1], 0x54
mov byte [0x4afdc5], dl
mov byte [0x4afdc2], 0x45
mov byte [0x4afdc6], dl
mov byte [0x4afdc3], 0x4d
mov byte [0x4afdc7], dl
mov byte [0x4afdc8], dl
mov byte [0x4afdc9], dl
mov byte [0x4afdca], dl
mov byte [0x4afdcb], dl
mov byte [0x4afdcc], dl
mov byte [0x4afdcd], dl
jmp 0x403ce1
mov edx, 0x20
mov byte [0x4afdcd], dl
mov byte [0x4afdcc], dl
mov byte [0x4afdcb], dl
mov byte [0x4afdca], dl
mov byte [0x4afdc9], dl
mov byte [0x4afdc8], dl
mov byte [0x4afdc7], dl
mov byte [0x4afdc6], dl
mov byte [0x4afdc5], dl
mov byte [0x4afdc4], dl
mov byte [0x4afdc3], dl
mov byte [0x4afdc2], dl
mov byte [0x4afdc1], dl
mov byte [0x4afdc0], dl
jmp 0x403ce1
neg edx
movsx ecx, dx
mov dword [esp + 0x140], ecx
jmp 0x403c0a
cmp ecx, 0x5439
jne 0x403ac7
mov ebx, 9
mov word [0x4afde8], bx
mov edx, 0xc
mov ecx, 0x4afde2
mov ebx, 0x48f9cc
mov word [0x4afdea], dx
movzx edx, word [ebx]
mov word [ecx], dx
movzx edx, byte [ebx + 2]
mov byte [ecx + 2], dl
movzx ecx, byte [0x4afde2]
movzx edx, byte [0x4afde3]
shl ecx, 8
or ecx, edx
jmp 0x403ac7