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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xac
mov eax, dword [0x4ef07c]
mov edx, dword [0x4ef080]
mov dword [esp + 0xc], 0
lea ecx, [esp + 0x50]
mov dword [esp + 0x18], eax
mov eax, dword [0x4ef07c]
mov dword [esp + 0x1c], edx
mov edx, dword [0x4ef080]
mov dword [esp + 0x10], eax
mov eax, dword [0x4ef084]
mov dword [esp + 0x14], edx
mov edx, dword [0x4ef088]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0xa
mov dword [esp + 0x6c], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x70], 0x4ef098
call sym._execCmdEx__pureZosproc_u1746_32
sub esp, 0x20
mov eax, dword [esp + 0x50]
mov dword [esp], 0x4db1c8
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x9c], eax
call sym.___emutls_get_address
movzx esi, byte [eax]
mov ebx, eax
mov eax, esi
test al, al
jne 0x4b1bf7
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
lea ecx, [esp + 0x94]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
call sym._eqwasMoved___stdZassertions_u27_4
mov esi, dword [esp + 0x9c]
test esi, esi
je 0x4b1c40
movzx esi, byte [ebx]
mov eax, dword [esp + 0x78]
mov byte [ebx], 0
test eax, eax
je 0x4b1c0e
test dword [eax], 0x40000000
je 0x4b1cf8
lea ecx, [esp + 0x94]
call sym._eqdestroy___pureZosproc_u1790_4
cmp byte [ebx], 0
jne 0x4b1c23
mov eax, esi
mov byte [ebx], al
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
lea ecx, [esp + 0x7c]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
call sym._eqcopy___stdZassertions_u30_12
sub esp, 8
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
lea edx, [eax - 1]
test eax, eax
js 0x4b1d08
lea edx, [ecx + 4]
test ecx, ecx
mov edi, ecx
cmove edx, esi
test eax, eax
jne 0x4b1cb5
jmp 0x4b1cd2
cmp esi, 0x15
je 0x4b1d29
movzx ecx, byte [esi + str.Nim_Compiler_Version]
cmp byte [edx + esi], cl
jne 0x4b1d25
add esi, 1
cmp eax, esi
jne 0x4b1cb0
movzx edx, byte [ebx]
mov ecx, edi
cmp eax, 0x15
je 0x4b1d2e
test ecx, ecx
je 0x4b1bf4
test dword [ecx], 0x40000000
jne 0x4b1bf4
mov dword [esp], ecx
call sym._deallocShared
jmp 0x4b1bf4
mov dword [esp], eax
call sym._deallocShared
jmp 0x4b1c0e
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], 0
call sym._raiseIndexError4
mov ecx, dword [esp + 0x80]
jmp 0x4b1cd2
mov ecx, edi
jmp 0x4b1cd2
movzx edx, byte [ebx]
mov ecx, edi
test dl, dl
jne 0x4b1cd2
lea eax, [esp + 0x60]
mov edx, dword [esp + 0x80]
mov dword [esp + 0xc], 0x15
mov dword [esp + 8], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._parseInt__pureZparseutils_u920_16
sub esp, 0x10
cmp byte [ebx], 0
jne 0x4b2370
test eax, eax
je 0x4b2370
xor edx, edx
add eax, 0x15
seto dl
mov esi, edx
jo 0x4b2380
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
lea ebp, [edx - 1]
mov edi, ebp
sub edi, eax
cmp edi, 0xffffffff
je 0x4b2391
test eax, eax
js 0x4b239e
cmp eax, edx
jge 0x4b239e
lea esi, [edi + 1]
xor edx, edx
test ecx, ecx
je 0x4b1db5
lea edx, [ecx + eax + 4]
test esi, esi
jle 0x4b1cd2
cmp byte [edx], 0x2e
jne 0x4b1cd2
add eax, 1
mov esi, eax
jo 0x4b2380
mov dword [esp + 0xc], eax
lea eax, [esp + 0x64]
mov edx, dword [esp + 0x80]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._parseInt__pureZparseutils_u920_16
sub esp, 0x10
cmp byte [ebx], 0
jne 0x4b2370
test eax, eax
je 0x4b2370
xor edx, edx
add eax, esi
seto dl
mov ebp, edx
jo 0x4b2380
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
lea edi, [edx - 1]
mov esi, edi
sub esi, eax
cmp esi, 0xffffffff
je 0x4b23ba
cmp eax, edx
jge 0x4b23c7
test eax, eax
js 0x4b23c7
lea ebp, [esi + 1]
xor edx, edx
test ecx, ecx
je 0x4b1e4f
lea edx, [ecx + eax + 4]
test ebp, ebp
jle 0x4b1cd2
cmp byte [edx], 0x2e
jne 0x4b1cd2
add eax, 1
mov esi, eax
jo 0x4b2380
mov dword [esp + 0xc], eax
lea eax, [esp + 0x68]
mov edx, dword [esp + 0x80]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._parseInt__pureZparseutils_u920_16
sub esp, 0x10
cmp byte [ebx], 0
jne 0x4b2370
test eax, eax
je 0x4b2370
add eax, esi
seto al
movzx eax, al
mov esi, eax
jo 0x4b2380
mov dword [esp + 0x84], 0
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
call sym._dollar___systemZdollars_u8_4
cmp byte [ebx], 0
mov dword [esp + 0x38], edx
mov edi, eax
jne 0x4b2370
mov ecx, dword [esp + 0x64]
call sym._dollar___systemZdollars_u8_4
cmp byte [ebx], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], edx
jne 0x4b2370
mov ecx, dword [esp + 0x68]
call sym._dollar___systemZdollars_u8_4
cmp byte [ebx], 0
mov dword [esp + 0x34], eax
mov dword [esp + 0x48], edx
jne 0x4b2370
mov edx, eax
mov eax, dword [esp + 0x30]
add eax, edi
lea ecx, [eax + edx + 2]
call sym._rawNewString_4
mov dword [esp + 0x40], eax
mov ebp, eax
mov dword [esp + 0x2c], edx
test edi, edi
jle 0x4b1f8d
mov eax, edi
add eax, 1
jo 0x4b2532
test eax, eax
js 0x4b2400
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
mov dword [esp + 8], eax
lea edx, [edx + ecx + 4]
mov ecx, dword [esp + 0x38]
mov dword [esp], edx
add ecx, 4
mov dword [esp + 4], ecx
call sym._memcpy
mov eax, dword [esp + 0x40]
add eax, edi
jo 0x4b2532
mov ebp, eax
mov eax, dword [esp + 0x2c]
mov edi, ebp
add edi, 1
lea eax, [ebp + eax + 4]
mov word [eax], 0x2e
jo 0x4b2589
mov edx, dword [esp + 0x30]
add ebp, 5
test edx, edx
jle 0x4b1ff6
mov eax, dword [esp + 0x30]
add eax, 1
jo 0x4b255f
test eax, eax
js 0x4b24bd
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
lea ebp, [edi + 4]
mov dword [esp + 8], eax
add edx, ebp
add ecx, 4
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._memcpy
mov eax, dword [esp + 0x30]
add eax, edi
jo 0x4b25ae
mov edi, eax
lea ebp, [eax + 4]
mov eax, dword [esp + 0x2c]
mov word [eax + ebp], 0x2e
mov eax, edi
add eax, 1
mov ebp, eax
jo 0x4b257d
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x4b2053
add eax, 1
jo 0x4b256c
test eax, eax
js 0x4b24f9
mov edi, dword [esp + 0x2c]
mov dword [esp + 8], eax
lea edx, [ebp + edi + 4]
mov edi, dword [esp + 0x48]
mov dword [esp], edx
lea ecx, [edi + 4]
mov dword [esp + 4], ecx
call sym._memcpy
mov eax, dword [esp + 0x34]
add eax, ebp
jo 0x4b256c
mov ebp, eax
mov eax, dword [esp + 0x2c]
mov dword [esp], ebp
lea ecx, [esp + 0x6c]
mov dword [esp + 4], eax
call sym._eqsink___stdZassertions_u36_12
sub esp, 8
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
lea ecx, [esp + 0x74]
mov edi, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
call sym._eqwasMoved___stdZassertions_u27_4
lea eax, [edi - 1]
mov dword [esp + 0x34], eax
test edi, edi
js 0x4b2439
xor eax, eax
lea edx, [ebp + 4]
test ebp, ebp
cmovne eax, edx
mov ecx, eax
test edi, edi
je 0x4b253c
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebx
lea eax, [esi + 1]
cmp byte [ecx + esi], 0xa
mov dword [esp + 0x4c], eax
je 0x4b20d0
mov esi, dword [esp + 0x4c]
cmp edi, esi
jne 0x4b20b6
jmp 0x4b2120
mov ebp, eax
cmp edi, eax
jle 0x4b20c3
mov eax, 1
jmp 0x4b20ea
cmp eax, 0xb
je 0x4b2120
test edx, edx
js 0x4b23e3
movzx edx, byte [eax + 0x4ef044]
cmp byte [ecx + ebp], dl
jne 0x4b20c3
add eax, 1
mov edx, esi
xor ebx, ebx
add edx, eax
js 0x4b2555
cmp edx, eax
jb 0x4b2555
mov ebp, edx
test ebx, ebx
jne 0x4b2543
cmp edi, edx
jg 0x4b20dd
cmp eax, 0xb
jne 0x4b20c3
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
lea eax, [esp + 0x84]
mov dword [esp + 4], esi
mov edx, edi
mov dword [esp], eax
call sym._fastSubstr__pureZparseutils_u225_16
push eax
push eax
cmp byte [ebx], 0
jne 0x4b2370
mov edx, dword [esp + 0x34]
sub edx, esi
cmp edx, 0xffffffff
je 0x4b215b
cmp edi, esi
jle 0x4b2452
test ebp, ebp
je 0x4b25b8
lea eax, [ebp + esi + 4]
test edx, edx
js 0x4b22db
cmp byte [eax], 0xa
jne 0x4b22db
test edx, edx
jle 0x4b22db
cmp byte [eax + 1], 0x67
jne 0x4b22db
cmp edx, 1
je 0x4b22db
cmp byte [eax + 2], 0x69
jne 0x4b22db
cmp edx, 2
je 0x4b22db
cmp byte [eax + 3], 0x74
jne 0x4b22db
cmp edx, 3
je 0x4b22db
cmp byte [eax + 4], 0x20
jne 0x4b22db
cmp edx, 4
je 0x4b22db
cmp byte [eax + 5], 0x68
jne 0x4b22db
cmp edx, 5
je 0x4b22db
cmp byte [eax + 6], 0x61
jne 0x4b22db
cmp edx, 6
je 0x4b22db
cmp byte [eax + 7], 0x73
jne 0x4b22db
cmp edx, 7
je 0x4b22db
cmp byte [eax + 8], 0x68
jne 0x4b22db
cmp edx, 8
je 0x4b22db
cmp byte [eax + 9], 0x3a
jne 0x4b22db
cmp edx, 9
je 0x4b22db
cmp byte [eax + 0xa], 0x20
jne 0x4b22db
mov edi, esi
add edi, 0xb
js 0x4b2380
cmp edi, esi
jb 0x4b2380
lea eax, [esp + 0x8c]
mov edx, dword [esp + 0x44]
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._parseIdent__pureZparseutils_u842_16
sub esp, 0x10
cmp byte [ebx], 0
jne 0x4b2370
test eax, eax
je 0x4b22db
add eax, edi
jo 0x4b2380
mov edx, 1
lea ecx, [esp + 0x6c]
call sym._prepareAdd_8
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov byte [edx + eax + 4], 0x20
add eax, 1
jo 0x4b25a4
mov edx, dword [esp + 0x70]
mov dword [esp + 0x6c], eax
mov byte [edx + eax + 4], 0
mov edx, dword [esp + 0x8c]
lea ecx, [esp + 0x6c]
call sym._prepareAdd_8
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
lea eax, [esp + 0x6c]
call sym._appendString_4
test ebp, ebp
je 0x4b22ec
test dword [ebp], 0x40000000
je 0x4b2474
mov eax, dword [esp + 0x90]
test eax, eax
je 0x4b2303
test dword [eax], 0x40000000
je 0x4b2481
mov eax, dword [esp + 0x88]
test eax, eax
je 0x4b231a
test dword [eax], 0x40000000
je 0x4b248e
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4b2333
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
test eax, 0x40000000
je 0x4b249b
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4b234c
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
test eax, 0x40000000
je 0x4b24ac
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4b2370
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
test eax, 0x40000000
jne 0x4b2370
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sym._deallocShared
lea esi, [esi]
mov ecx, dword [esp + 0x80]
jmp 0x4b1cd2
call sym._raiseOverflow
mov ecx, dword [esp + 0x80]
jmp 0x4b1cd2
test ecx, ecx
jne 0x4b1db1
jmp 0x4b1bf4
mov dword [esp + 8], edx
mov dword [esp + 4], ebp
mov dword [esp], eax
call sym._raiseIndexError4
mov ecx, dword [esp + 0x80]
jmp 0x4b1cd2
test ecx, ecx
jne 0x4b1e4b
jmp 0x4b1bf4
mov dword [esp + 8], edx
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._raiseIndexError4
mov ecx, dword [esp + 0x80]
jmp 0x4b1cd2
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x2c]
mov dword [esp], edx
mov ebx, dword [esp + 0x30]
mov dword [esp + 4], eax
call sym._raiseIndexError2
jmp 0x4b213f
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call sym._raiseRangeErrorI
jmp 0x4b1f8d
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], 0
call sym._raiseIndexError4
jmp 0x4b213f
mov eax, dword [esp + 0x34]
mov dword [esp + 8], edi
mov dword [esp], esi
mov dword [esp + 4], eax
call sym._raiseIndexError4
cmp byte [ebx], 0
je 0x4b22db
jmp 0x4b2370
mov dword [esp], ebp
call sym._deallocShared
jmp 0x4b22ec
mov dword [esp], eax
call sym._deallocShared
jmp 0x4b2303
mov dword [esp], eax
call sym._deallocShared
jmp 0x4b231a
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call sym._deallocShared
jmp 0x4b2333
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call sym._deallocShared
jmp 0x4b234c
mov dword [esp + 0x10], 0x7fffffff
lea ebp, [edi + 4]
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call sym._raiseRangeErrorI
jmp 0x4b1ff6
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call sym._raiseRangeErrorI
jmp 0x4b2053
call sym._raiseOverflow
jmp 0x4b1f8d
xor esi, esi
jmp 0x4b2128
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
call sym._raiseOverflow
jmp 0x4b213f
mov ebx, 1
jmp 0x4b210d
call sym._raiseOverflow
lea ebp, [edi + 4]
jmp 0x4b1ff6
call sym._raiseOverflow
jmp 0x4b2053
mov word [eax], 0x2e
mov edi, ebp
call sym._raiseOverflow
mov ebp, edi
jmp 0x4b200d
mov dword [esp + 0x40], eax
call sym._raiseOverflow
cmp dword [esp + 0x30], 0
mov eax, dword [esp + 0x40]
jle 0x4b2576
mov edi, ebp
jmp 0x4b1fb0
call sym._raiseOverflow
jmp 0x4b22b4
call sym._raiseOverflow
jmp 0x4b1ff6
xor eax, eax
jmp 0x4b2167