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

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
push edi
push 8
push 1
call fcn.004181c0
mov ebp, eax
add esp, 8
test ebp, ebp
mov dword [esp + 0x10], ebp
je 0x402389
mov ebx, dword [esp + 0x78]
push 0x4a1158
push ebx
call fcn.00483980
add esp, 8
mov dword [ebp + 4], eax
test eax, eax
jg 0x401944
push str.Need_at_least_one_action
push 0x4b6c60
call fcn.00492257
mov eax, dword [ebp]
add esp, 8
test eax, eax
je 0x401931
mov eax, dword [ebp + 4]
xor ebx, ebx
test eax, eax
jle 0x401925
mov esi, dword [ebp]
test ebx, ebx
jl 0x4018a4
cmp ebx, dword [esi + 0xc]
jl 0x4018d0
push 0x6e
push 0x4a10e8
call fcn.00418f50
add esp, 4
push eax
push 0x4a1104
push 0x4b6d60
call fcn.00492257
push 0x4b6d60
call fcn.004187d0
add esp, 0x14
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x14]
imul eax, ebx
mov edi, dword [eax + ecx]
test edi, edi
je 0x401919
push edi
call fcn.00409240
mov esi, eax
add esp, 4
test esi, esi
je 0x401910
mov edx, dword [esi + 0x28]
push edx
call fcn.00413320
mov eax, dword [esi + 0x2c]
push eax
call fcn.00413320
push edi
call fcn.004092b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4018ef
push edi
call fcn.00408a30
add esp, 4
mov eax, dword [ebp + 4]
inc ebx
cmp ebx, eax
jl 0x401898
mov ecx, dword [ebp]
push ecx
call fcn.00408a30
add esp, 4
push ebp
call fcn.00418f40
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
push 0
push 0x14
push eax
call fcn.00408800
add esp, 0xc
mov dword [ebp], eax
test eax, eax
jne 0x401a2e
push 0x4a1184
push 0x4b6c60
call fcn.00492257
mov eax, dword [ebp]
add esp, 8
test eax, eax
je 0x401931
mov eax, dword [ebp + 4]
xor ebx, ebx
test eax, eax
jle 0x401a0f
mov esi, dword [ebp]
test ebx, ebx
jl 0x40198e
cmp ebx, dword [esi + 0xc]
jl 0x4019ba
push 0x6e
push 0x4a10e8
call fcn.00418f50
add esp, 4
push eax
push 0x4a1104
push 0x4b6d60
call fcn.00492257
push 0x4b6d60
call fcn.004187d0
add esp, 0x14
mov edx, dword [esi + 4]
mov eax, dword [esi + 0x14]
imul edx, ebx
mov edi, dword [edx + eax]
test edi, edi
je 0x401a03
push edi
call fcn.00409240
mov esi, eax
add esp, 4
test esi, esi
je 0x4019fa
mov ecx, dword [esi + 0x28]
push ecx
call fcn.00413320
mov edx, dword [esi + 0x2c]
push edx
call fcn.00413320
push edi
call fcn.004092b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4019d9
push edi
call fcn.00408a30
add esp, 4
mov eax, dword [ebp + 4]
inc ebx
cmp ebx, eax
jl 0x401982
mov eax, dword [ebp]
push eax
call fcn.00408a30
add esp, 4
push ebp
call fcn.00418f40
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
push ebx
call fcn.004838f0
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 4]
add esp, 4
mov dword [esp + 0x28], 0
test eax, eax
jle 0x401e1b
mov esi, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x30], ecx
push 0x4a1194
mov dword [esp + 0x38], ecx
lea edx, [esi + 1]
mov dword [esp + 0x3c], ecx
push edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], ecx
call fcn.00418470
add esp, 8
test eax, eax
jne 0x401a9e
push ebx
call fcn.00483910
mov esi, eax
push 0x4a1194
mov dword [esp + 0x1c], esi
lea eax, [esi + 1]
push eax
call fcn.00418470
add esp, 0xc
test eax, eax
je 0x401a7d
add esi, 0xe
push esi
call fcn.0049235e
xor edi, edi
push ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x3c], edi
call fcn.00483f10
add esp, 8
cmp eax, edi
je 0x401b03
mov cl, byte [eax]
cmp cl, 0x30
jl 0x401ad2
cmp cl, 0x39
jle 0x401ad7
cmp cl, 0x2d
jne 0x401adb
inc dword [esp + 0x34]
mov cl, byte [eax]
cmp cl, 0x4c
je 0x401ae7
cmp cl, 0x6c
jne 0x401af6
mov al, byte [eax + 1]
cmp al, 0x30
jl 0x401af6
cmp al, 0x39
jg 0x401af6
inc dword [esp + 0x34]
push ebx
call fcn.00483f90
add esp, 4
cmp eax, edi
jne 0x401ac6
push ebx
call fcn.00483ee0
mov ecx, dword [esp + 0x38]
push edi
push 0x30
push ecx
call fcn.00408800
add esp, 0x10
cmp eax, edi
mov dword [esp + 0x30], eax
je 0x401e25
mov eax, dword [esp + 0x34]
xor edx, edx
xor ebp, ebp
cmp eax, edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ebp
jle 0x401dd6
jmp 0x401b49
xor edx, edx
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0x44]
mov dword [esp + 0x20], edx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x18]
mov dword [esp + 0x64], 0x100
mov dword [esp + 0x68], edx
push ebx
call fcn.00483f90
mov esi, eax
add esp, 4
test esi, esi
je 0x401f01
push 9
push str.loopstart
push esi
call fcn.004184c0
add esp, 0xc
test eax, eax
je 0x401b99
mov dword [esp + 0x20], 1
push 5
push str.clsn1
push esi
call fcn.004184c0
add esp, 0xc
test eax, eax
je 0x401be0
push ebx
push esi
call fcn.004134d0
add esp, 8
mov dword [esp + 0x6c], eax
test eax, eax
je 0x401fc9
mov cl, byte [esi + 5]
cmp cl, 0x64
je 0x401bd0
cmp cl, 0x44
jne 0x401be0
mov edi, eax
mov eax, dword [esp + 0x5c]
or al, 4
mov dword [esp + 0x18], edi
mov dword [esp + 0x5c], eax
push 5
push str.clsn2
push esi
call fcn.004184c0
add esp, 0xc
test eax, eax
je 0x401c28
push ebx
push esi
call fcn.004134d0
add esp, 8
mov dword [esp + 0x70], eax
test eax, eax
je 0x402093
mov cl, byte [esi + 5]
cmp cl, 0x64
je 0x401c17
cmp cl, 0x44
jne 0x401c2c
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x1c], eax
or ecx, 8
mov dword [esp + 0x5c], ecx
jmp 0x401c2c
mov eax, dword [esp + 0x70]
mov cl, byte [esi]
cmp cl, 0x4c
je 0x401c38
cmp cl, 0x6c
jne 0x401c45
mov dl, byte [esi + 1]
cmp dl, 0x30
jl 0x401c45
cmp dl, 0x39
jle 0x401c58
cmp cl, 0x30
jl 0x401c4f
cmp cl, 0x39
jle 0x401c58
cmp cl, 0x2d
jne 0x401b6a
test edi, edi
je 0x401c7d
mov ecx, dword [esp + 0x6c]
test ecx, ecx
jne 0x401c7d
push edi
call fcn.00413400
add esp, 4
mov dword [esp + 0x6c], eax
test eax, eax
je 0x40215d
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x401c9e
test eax, eax
jne 0x401c9e
push ecx
call fcn.00413400
add esp, 4
mov dword [esp + 0x70], eax
test eax, eax
je 0x402224
test ebp, ebp
jne 0x401cad
xor eax, eax
mov dword [esp + 0x44], eax
jmp 0x401d4d
mov eax, dword [esp + 0x30]
lea edi, [ebp - 1]
test edi, edi
mov ebx, eax
jl 0x401cbf
cmp edi, dword [eax + 0xc]
jl 0x401cef
push 0x6e
push 0x4a10e8
call fcn.00418f50
add esp, 4
push eax
push 0x4a1104
push 0x4b6d60
call fcn.00492257
push 0x4b6d60
call fcn.004187d0
mov eax, dword [esp + 0x44]
add esp, 0x14
test edi, edi
mov ebp, eax
jl 0x401cfa
cmp edi, dword [eax + 0xc]
jl 0x401d26
push 0x6e
push 0x4a10e8
call fcn.00418f50
add esp, 4
push eax
push 0x4a1104
push 0x4b6d60
call fcn.00492257
push 0x4b6d60
call fcn.004187d0
add esp, 0x14
mov edx, dword [ebp + 4]
mov ecx, dword [ebx + 4]
imul edx, edi
imul ecx, edi
mov eax, dword [ebp + 0x14]
mov edi, dword [ebx + 0x14]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x24]
mov eax, dword [edx + eax + 4]
mov edx, dword [ecx + edi]
add eax, edx
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x401d5d
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebp
xor ecx, ecx
mov al, byte [ecx + esi]
cmp al, 0x30
jl 0x401d6a
cmp al, 0x39
jle 0x401d79
cmp al, 0x2d
je 0x401d79
test al, al
je 0x4022ee
inc ecx
jmp 0x401d5f
mov edx, dword [esp + 0x14]
push ebp
lea eax, [esp + 0x48]
push edx
add ecx, esi
push eax
push ecx
call fcn.004023b0
add esp, 0x10
test eax, eax
je 0x402393
mov eax, dword [esp + 0x48]
cmp eax, 0xffffffff
je 0x401da6
add dword [esp + 0x38], eax
jmp 0x401dae
mov dword [esp + 0x38], 0xffffffff
mov edx, dword [esp + 0x30]
push ebp
lea ecx, [esp + 0x48]
push 0
push ecx
push edx
call fcn.00408a90
mov eax, dword [esp + 0x44]
add esp, 0x10
inc ebp
cmp ebp, eax
mov dword [esp + 0x24], ebp
jl 0x401b47
xor edx, edx
cmp dword [esp + 0x40], 0xffffffff
jne 0x401de1
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
push eax
push edx
mov edx, dword [esi]
lea ecx, [esp + 0x38]
push ecx
push edx
call fcn.00408a90
push ebx
call fcn.00483910
mov ecx, dword [esi + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c]
add esp, 0x14
inc eax
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x401a4e
mov ebp, esi
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
push 0x4a11a4
push 0x4b6c60
call fcn.00492257
mov ebp, dword [esp + 0x18]
add esp, 8
cmp dword [ebp], edi
je 0x401931
mov eax, dword [ebp + 4]
xor ebx, ebx
cmp eax, edi
jle 0x401ee2
jmp 0x401e55
xor edi, edi
mov esi, dword [ebp]
cmp ebx, edi
jl 0x401e61
cmp ebx, dword [esi + 0xc]
jl 0x401e8d
push 0x6e
push 0x4a10e8
call fcn.00418f50
add esp, 4
push eax
push 0x4a1104
push 0x4b6d60
call fcn.00492257
push 0x4b6d60
call fcn.004187d0
add esp, 0x14
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x14]
imul eax, ebx
mov edi, dword [eax + ecx]
test edi, edi
je 0x401ed6
push edi
call fcn.00409240
mov esi, eax
add esp, 4
test esi, esi
je 0x401ecd
mov edx, dword [esi + 0x28]
push edx
call fcn.00413320
mov eax, dword [esi + 0x2c]
push eax
call fcn.00413320
push edi
call fcn.004092b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x401eac
push edi
call fcn.00408a30
add esp, 4
mov eax, dword [ebp + 4]
inc ebx
cmp ebx, eax
jl 0x401e53
mov ecx, dword [ebp]
push ecx
call fcn.00408a30
add esp, 4
push ebp
call fcn.00418f40
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
mov edx, dword [esp + 0x14]
inc ebp
push ebp
push edx
push str.Error_reading_line_in__s_elem__i
push 0x4b6c60
call fcn.00492257
mov esi, dword [esp + 0x20]
add esp, 0x10
cmp dword [esi], 0
je 0x402380
mov eax, dword [esi + 4]
xor ebx, ebx
test eax, eax
jle 0x402375
mov esi, dword [esi]
test ebx, ebx
jl 0x401f3f
cmp ebx, dword [esi + 0xc]
jl 0x401f6b
push 0x6e
push 0x4a10e8
call fcn.00418f50
add esp, 4
push eax
push 0x4a1104
push 0x4b6d60
call fcn.00492257
push 0x4b6d60
call fcn.004187d0
add esp, 0x14
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x14]
imul eax, ebx
mov edi, dword [eax + ecx]
test edi, edi
je 0x401fb4
push edi
call fcn.00409240
mov esi, eax
add esp, 4
test esi, esi
je 0x401fab
mov edx, dword [esi + 0x28]
push edx
call fcn.00413320
mov eax, dword [esi + 0x2c]
push eax
call fcn.00413320
push edi
call fcn.004092b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x401f8a
push edi
call fcn.00408a30
add esp, 4
mov ecx, dword [esp + 0x10]
inc ebx
mov esi, ecx
cmp ebx, dword [ecx + 4]
jl 0x401f34
jmp 0x402375
mov eax, dword [esp + 0x14]
push ebp
push eax
push str.Error_in_clsn1_in__s_elem__i
push 0x4b6c60
call fcn.00492257
mov esi, dword [esp + 0x20]
add esp, 0x10
cmp dword [esi], 0
je 0x402380
mov eax, dword [esi + 4]
xor ebx, ebx
test eax, eax
jle 0x40208b
mov esi, dword [esi]
test ebx, ebx
jl 0x402006
cmp ebx, dword [esi + 0xc]
jl 0x402032
push 0x6e
push 0x4a10e8
call fcn.00418f50
add esp, 4
push eax
push 0x4a1104
push 0x4b6d60
call fcn.00492257
push 0x4b6d60
call fcn.004187d0
add esp, 0x14
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x14]
imul ecx, ebx
mov edi, dword [ecx + edx]
test edi, edi
je 0x40207b
push edi
call fcn.00409240
mov esi, eax
add esp, 4
test esi, esi
je 0x402072
mov eax, dword [esi + 0x28]
push eax
call fcn.00413320
mov ecx, dword [esi + 0x2c]
push ecx
call fcn.00413320
push edi
call fcn.004092b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x402051
push edi
call fcn.00408a30
add esp, 4
mov edx, dword [esp + 0x10]
inc ebx
mov esi, edx
cmp ebx, dword [edx + 4]
jl 0x401ffb
mov eax, dword [esi]
push eax
jmp 0x402378
mov ecx, dword [esp + 0x14]
push ebp
push ecx
push str.Error_in_clsn2_in__s_elem__i
push 0x4b6c60
call fcn.00492257
mov esi, dword [esp + 0x20]
add esp, 0x10
cmp dword [esi], 0
je 0x402380
mov eax, dword [esi + 4]
xor ebx, ebx
test eax, eax
jle 0x402155
mov esi, dword [esi]
test ebx, ebx
jl 0x4020d0
cmp ebx, dword [esi + 0xc]
jl 0x4020fc
push 0x6e
push 0x4a10e8
call fcn.00418f50
add esp, 4
push eax
push 0x4a1104
push 0x4b6d60
call fcn.00492257
push 0x4b6d60
call fcn.004187d0
add esp, 0x14
mov edx, dword [esi + 4]
mov eax, dword [esi + 0x14]
imul edx, ebx
mov edi, dword [edx + eax]
test edi, edi
je 0x402145
push edi
call fcn.00409240
mov esi, eax
add esp, 4
test esi, esi
je 0x40213c
mov ecx, dword [esi + 0x28]
push ecx
call fcn.00413320
mov edx, dword [esi + 0x2c]
push edx
call fcn.00413320
push edi
call fcn.004092b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x40211b
push edi
call fcn.00408a30
add esp, 4
mov eax, dword [esp + 0x10]
inc ebx
mov esi, eax
cmp ebx, dword [eax + 4]
jl 0x4020c5
mov ecx, dword [esi]
push ecx
jmp 0x402378
mov edx, dword [esp + 0x14]
push ebp
push edx
push 0x4a1234
push 0x4b6c60
call fcn.00492257
mov esi, dword [esp + 0x20]
add esp, 0x10
cmp dword [esi], 0
je 0x402380
mov eax, dword [esi + 4]
xor ebx, ebx
test eax, eax
jle 0x402375
mov esi, dword [esi]
test ebx, ebx
jl 0x40219a
cmp ebx, dword [esi + 0xc]
jl 0x4021c6
push 0x6e
push 0x4a10e8
call fcn.00418f50
add esp, 4
push eax
push 0x4a1104
push 0x4b6d60
call fcn.00492257
push 0x4b6d60
call fcn.004187d0
add esp, 0x14
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x14]
imul eax, ebx
mov edi, dword [eax + ecx]
test edi, edi
je 0x40220f
push edi
call fcn.00409240
mov esi, eax
add esp, 4
test esi, esi
je 0x402206
mov edx, dword [esi + 0x28]
push edx
call fcn.00413320
mov eax, dword [esi + 0x2c]
push eax
call fcn.00413320
push edi
call fcn.004092b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4021e5
push edi
call fcn.00408a30
add esp, 4
mov ecx, dword [esp + 0x10]
inc ebx
mov esi, ecx
cmp ebx, dword [ecx + 4]
jl 0x40218f
jmp 0x402375
mov eax, dword [esp + 0x14]
push ebp
push eax
push str.Internal_lib_error_in__s_elem__i
push 0x4b6c60
call fcn.00492257
mov esi, dword [esp + 0x20]
add esp, 0x10
cmp dword [esi], 0
je 0x402380
mov eax, dword [esi + 4]
xor ebx, ebx
test eax, eax
jle 0x4022e6
mov esi, dword [esi]
test ebx, ebx
jl 0x402261
cmp ebx, dword [esi + 0xc]
jl 0x40228d
push 0x6e
push 0x4a10e8
call fcn.00418f50
add esp, 4
push eax
push 0x4a1104
push 0x4b6d60
call fcn.00492257
push 0x4b6d60
call fcn.004187d0
add esp, 0x14
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x14]
imul ecx, ebx
mov edi, dword [ecx + edx]
test edi, edi
je 0x4022d6
push edi
call fcn.00409240
mov esi, eax
add esp, 4
test esi, esi
je 0x4022cd
mov eax, dword [esi + 0x28]
push eax
call fcn.00413320
mov ecx, dword [esi + 0x2c]
push ecx
call fcn.00413320
push edi
call fcn.004092b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4022ac
push edi
call fcn.00408a30
add esp, 4
mov edx, dword [esp + 0x10]
inc ebx
mov esi, edx
cmp ebx, dword [edx + 4]
jl 0x402256
mov eax, dword [esi]
push eax
jmp 0x402378
mov ecx, dword [esp + 0x14]
inc ebp
push ebp
push ecx
push str.Syntax_error_in__s_elem__i
push 0x4b6c60
call fcn.00492257
mov esi, dword [esp + 0x20]
add esp, 0x10
cmp dword [esi], 0
je 0x402380
mov eax, dword [esi + 4]
xor ebx, ebx
test eax, eax
jle 0x402371
mov ebp, dword [esp + 0x10]
push ebx
mov edx, dword [ebp]
push edx
call fcn.00403f20
mov edi, dword [eax]
add esp, 8
test edi, edi
je 0x402369
push edi
call fcn.00409240
mov esi, eax
add esp, 4
test esi, esi
je 0x402360
mov eax, dword [esi + 0x28]
push eax
call fcn.00413320
mov ecx, dword [esi + 0x2c]
push ecx
call fcn.00413320
push edi
call fcn.004092b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x40233f
push edi
call fcn.00408a30
add esp, 4
mov eax, dword [ebp + 4]
inc ebx
cmp ebx, eax
jl 0x402319
mov esi, dword [esp + 0x10]
mov edx, dword [esi]
push edx
call fcn.00408a30
add esp, 4
push esi
call fcn.00418f40
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x64
ret
mov eax, dword [esp + 0x10]
push eax
call fcn.004026d0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret