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

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x4c
cmp byte [ecx + 0x58], 0x70
mov dword [esp + 0x3c], 0
ja case.0x46c03b.0
movzx eax, byte [ecx + 0x58]
jmp dword [eax*4 + 0x4e8f18]
mov eax, dword [0x4e992c]
mov edx, dword [0x4e9930]
lea edi, [ebx + 0x58]
mov ecx, ebx
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._parMessage__OOZOOZOOZcompilerZparser_u143_16
sub esp, 0xc
mov dword [esp], 0x4db1c8
call sym.___emutls_get_address
cmp byte [eax], 0
mov esi, eax
jne 0x46c0c0
mov edx, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0xc]
mov dword [ebx + 0x88], ecx
lea ecx, [ebx + 8]
mov dword [ebx + 0x8c], edx
mov edx, edi
mov dword [ebx + 0x90], eax
call sym._rawGetTok__OOZOOZOOZcompilerZlexer_u1886_8
cmp byte [esi], 0
jne 0x46c0c0
mov byte [ebx + 5], 1
cmp byte [esi], 0
jne 0x46c0c0
mov edx, dword [ebx + 0x9c]
lea ecx, [esp + 0x3c]
call sym._eqcopy___OOZOOZOOZcompilerZast_u3512_8
mov esi, dword [esp + 0x3c]
add esp, 0x4c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [ecx + 0x60]
mov edx, ebx
call sym._newIdentNodeP__OOZOOZOOZcompilerZparser_u69_8
mov dword [esp], 0x4db1c8
mov dword [esp + 0x3c], eax
mov esi, eax
call sym.___emutls_get_address
cmp byte [eax], 0
mov edi, eax
jne 0x46c0c4
mov edx, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0xc]
mov dword [ebx + 0x88], ecx
lea ecx, [ebx + 8]
mov dword [ebx + 0x8c], edx
lea edx, [ebx + 0x58]
mov dword [ebx + 0x90], eax
call sym._rawGetTok__OOZOOZOOZcompilerZlexer_u1886_8
cmp byte [edi], 0
jne 0x46c0c0
mov byte [ebx + 5], 1
cmp byte [edi], 0
mov esi, dword [esp + 0x3c]
jne 0x46c0c4
mov edx, esi
mov ecx, ebx
call sym._parseGStrLit__OOZOOZOOZcompilerZparser_u622_8
cmp byte [edi], 0
mov edx, eax
jne 0x46c0c0
lea ecx, [esp + 0x3c]
call sym._eqsink___OOZOOZOOZcompilerZast_u3518_8
mov esi, dword [esp + 0x3c]
jmp 0x46c0c4
call sym._parseCast__OOZOOZOOZcompilerZparser_u584_4
mov esi, eax
jmp 0x46c0c4
xor edx, edx
call sym._parseSymbol__OOZOOZOOZcompilerZparser_u95_8
mov esi, eax
jmp 0x46c0c4
call sym._setOrTableConstr__OOZOOZOOZcompilerZparser_u560_4
mov esi, eax
jmp 0x46c0c4
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x68]
mov edx, dword [ecx + 0x6c]
mov ecx, 6
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._newIntNodeP__OOZOOZOOZcompilerZparser_u57_16
sub esp, 0xc
lea esi, [esi]
mov dword [esp], 0x4db1c8
mov esi, eax
mov dword [esp + 0x3c], eax
call sym.___emutls_get_address
cmp byte [eax], 0
mov edi, eax
jne 0x46c0c4
movzx eax, byte [ebx + 0x59]
cmp al, 2
je 0x46c670
ja 0x46c660
test al, al
je 0x46c1d0
or dword [esi + 0xc], 2
nop
mov edx, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0xc]
mov dword [ebx + 0x88], ecx
lea ecx, [ebx + 8]
mov dword [ebx + 0x8c], edx
lea edx, [ebx + 0x58]
mov dword [ebx + 0x90], eax
call sym._rawGetTok__OOZOOZOOZcompilerZlexer_u1886_8
cmp byte [edi], 0
jne 0x46c0c0
mov esi, dword [esp + 0x3c]
mov byte [ebx + 5], 1
add esp, 0x4c
pop ebx
mov eax, esi
pop esi
pop edi
pop ebp
ret
mov edx, ecx
mov ecx, 0x17
call sym._newNodeP__OOZOOZOOZcompilerZparser_u54_8
mov dword [esp], 0x4db1c8
mov esi, eax
mov dword [esp + 0x3c], eax
call sym.___emutls_get_address
cmp byte [eax], 0
mov edi, eax
je 0x46c1d0
jmp 0x46c0c4
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x68]
mov edx, dword [ecx + 0x6c]
mov ecx, 0xa
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._newIntNodeP__OOZOOZOOZcompilerZparser_u57_16
sub esp, 0xc
jmp 0x46c198
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x68]
mov edx, dword [ecx + 0x6c]
mov ecx, 9
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._newIntNodeP__OOZOOZOOZcompilerZparser_u57_16
sub esp, 0xc
jmp 0x46c198
mov esi, dword [ecx + 0x68]
mov edi, dword [ecx + 0x6c]
mov dword [esp], 0x4db1c8
call sym.___emutls_get_address
mov edx, edi
mov ebp, eax
mov eax, esi
add eax, 0x80000000
adc edx, 0
cmp edx, 0
ja 0x46c679
mov eax, esi
sub eax, 1
jo 0x46c74a
mov dword [esp + 0xc], eax
mov edx, dword [ebx + 0x7c]
mov eax, dword [ebx + 0x78]
mov dword [esp + 8], 0
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._substr__system_u8785_16
mov ecx, 0x15
sub esp, 0x10
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 0x24], edx
call sym._newStrNodeP__OOZOOZOOZcompilerZparser_u65_16
movzx edx, byte [ebp]
sub esp, 0xc
mov dword [esp + 0x20], eax
test dl, dl
jne 0x46c6b9
mov eax, dword [ebx + 0x78]
mov edx, dword [ebx + 0x7c]
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._substr__system_u8797_12
mov ecx, dword [ebx + 0x4c]
sub esp, 0xc
mov esi, edx
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._getIdent__OOZOOZOOZcompilerZidents_u207_12
movzx edx, byte [ebp]
sub esp, 8
mov dword [esp + 0x2c], eax
test dl, dl
jne 0x46c743
mov edx, ebx
mov ecx, eax
call sym._newIdentNodeP__OOZOOZOOZcompilerZparser_u69_8
movzx edx, byte [ebp]
mov edi, eax
test dl, dl
jne 0x46c39b
mov edx, ebx
mov ecx, 0x2d
call sym._newNodeP__OOZOOZOOZcompilerZparser_u54_8
movzx edx, byte [ebp]
mov dword [esp + 0x3c], eax
mov ecx, eax
test dl, dl
jne 0x46c39b
mov edx, dword [esp + 0x20]
call sym._add__OOZOOZOOZcompilerZast_u7134_8
movzx edx, byte [ebp]
test dl, dl
jne 0x46c39b
mov ecx, dword [esp + 0x3c]
mov edx, edi
call sym._add__OOZOOZOOZcompilerZast_u7134_8
movzx edx, byte [ebp]
test dl, dl
jne 0x46c39b
mov ecx, ebx
call sym._getTok__OOZOOZOOZcompilerZparser_u45_4
movzx edx, byte [ebp]
mov byte [ebp], 0
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x28], dl
call sym._eqdestroy___OOZOOZOOZcompilerZidents_u156_4
cmp byte [ebp], 0
jne 0x46c0c0
test esi, esi
movzx edx, byte [esp + 0x28]
je 0x46c3cb
test dword [esi], 0x40000000
je 0x46c717
mov ecx, edi
mov byte [esp + 0x28], dl
call sym._eqdestroy___OOZOOZOOZcompilerZast_u3509_4
cmp byte [ebp], 0
jne 0x46c0c0
mov eax, dword [esp + 0x24]
movzx edx, byte [esp + 0x28]
test eax, eax
je 0x46c3fe
mov eax, dword [eax]
mov dword [esp + 0x28], eax
test eax, 0x40000000
je 0x46c729
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x24], dl
call sym._eqdestroy___OOZOOZOOZcompilerZast_u3509_4
cmp byte [ebp], 0
jne 0x46c0c0
movzx edx, byte [esp + 0x24]
mov esi, dword [esp + 0x3c]
mov byte [ebp], dl
jmp 0x46c0c4
mov eax, dword [ecx + 0x78]
test eax, eax
jle 0x46c6fb
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x7c]
mov ecx, 5
movzx eax, byte [eax + 4]
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._newIntNodeP__OOZOOZOOZcompilerZparser_u57_16
sub esp, 0xc
mov esi, eax
mov dword [esp], 0x4db1c8
mov dword [esp + 0x3c], eax
call sym.___emutls_get_address
cmp byte [eax], 0
jne 0x46c0c4
mov ecx, ebx
call sym._getTok__OOZOOZOOZcompilerZparser_u45_4
mov esi, dword [esp + 0x3c]
jmp 0x46c0c4
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x78]
mov edx, dword [ecx + 0x7c]
mov ecx, 0x14
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._newStrNodeP__OOZOOZOOZcompilerZparser_u65_16
sub esp, 0xc
jmp 0x46c21d
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x78]
mov edx, dword [ecx + 0x7c]
mov ecx, 0x16
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._newStrNodeP__OOZOOZOOZcompilerZparser_u65_16
sub esp, 0xc
jmp 0x46c21d
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x78]
mov edx, dword [ecx + 0x7c]
mov ecx, 0x15
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._newStrNodeP__OOZOOZOOZcompilerZparser_u65_16
sub esp, 0xc
jmp 0x46c21d
mov dword [esp], 0x5d
mov edx, 0x29
call sym._exprColonEqExprList__OOZOOZOOZcompilerZparser_u484_12
sub esp, 4
mov esi, eax
jmp 0x46c0c4
sub edx, 1
cmp dl, 1
jbe 0x46c6e0
call sym._parsePar__OOZOOZOOZcompilerZparser_u691_4
mov esi, eax
jmp 0x46c0c4
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x68]
mov edx, dword [ecx + 0x6c]
mov ecx, 0xc
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._newIntNodeP__OOZOOZOOZcompilerZparser_u57_16
sub esp, 0xc
jmp 0x46c198
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x68]
mov edx, dword [ecx + 0x6c]
mov ecx, 8
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._newIntNodeP__OOZOOZOOZcompilerZparser_u57_16
sub esp, 0xc
jmp 0x46c198
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x68]
mov edx, dword [ecx + 0x6c]
mov ecx, 7
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._newIntNodeP__OOZOOZOOZcompilerZparser_u57_16
sub esp, 0xc
jmp 0x46c198
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x68]
mov edx, dword [ecx + 0x6c]
mov ecx, 0xb
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._newIntNodeP__OOZOOZOOZcompilerZparser_u57_16
sub esp, 0xc
jmp 0x46c198
fld qword [ecx + 0x70]
mov edx, ecx
mov ecx, 0x12
fstp qword [esp]
call sym._newFloatNodeP__OOZOOZOOZcompilerZparser_u61_16
sub esp, 8
jmp 0x46c198
fld qword [ecx + 0x70]
mov edx, ecx
mov ecx, 0x11
fstp qword [esp]
jmp 0x46c5b4
fld qword [ecx + 0x70]
mov edx, ecx
mov ecx, 0x10
fstp qword [esp]
jmp 0x46c5b4
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x68]
mov edx, dword [ecx + 0x6c]
mov ecx, 0xf
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._newIntNodeP__OOZOOZOOZcompilerZparser_u57_16
sub esp, 0xc
jmp 0x46c198
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x68]
mov edx, dword [ecx + 0x6c]
mov ecx, 0xe
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._newIntNodeP__OOZOOZOOZcompilerZparser_u57_16
sub esp, 0xc
jmp 0x46c198
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x68]
mov edx, dword [ecx + 0x6c]
mov ecx, 0xd
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._newIntNodeP__OOZOOZOOZcompilerZparser_u57_16
sub esp, 0xc
jmp 0x46c198
fld qword [ecx + 0x70]
mov edx, ecx
mov ecx, 0x13
fstp qword [esp]
jmp 0x46c5b4
or dword [esi + 0xc], 8
jmp 0x46c1d0
or dword [esi + 0xc], 4
jmp 0x46c1d0
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0x80000000
mov dword [esp + 0xc], 0xffffffff
mov dword [esp], esi
mov dword [esp + 4], edi
call sym._raiseRangeErrorI
mov dword [esp + 0x24], 0
movzx edx, byte [ebp]
mov dword [esp + 0x20], 0
mov byte [ebp], 0
xor ecx, ecx
mov byte [esp + 0x28], dl
call sym._eqdestroy___OOZOOZOOZcompilerZidents_u156_4
cmp byte [ebp], 0
jne 0x46c0c0
movzx edx, byte [esp + 0x28]
xor edi, edi
jmp 0x46c3cb
mov dword [esp], 0x5b
mov edx, 0x25
call sym._exprColonEqExprList__OOZOOZOOZcompilerZparser_u484_12
sub esp, 4
mov esi, eax
jmp 0x46c0c4
sub eax, 1
mov dword [esp], 0
mov dword [esp + 4], eax
call sym._raiseIndexError2
mov esi, dword [esp + 0x3c]
jmp 0x46c0c4
mov dword [esp], esi
call sym._deallocShared
movzx edx, byte [esp + 0x28]
jmp 0x46c3cb
mov eax, dword [esp + 0x24]
mov byte [esp + 0x28], dl
mov dword [esp], eax
call sym._deallocShared
movzx edx, byte [esp + 0x28]
jmp 0x46c3fe
xor edi, edi
jmp 0x46c39b
call sym._raiseOverflow
mov dword [esp + 0x24], 0
movzx edx, byte [ebp]
mov dword [esp + 0x20], 0
jmp 0x46c6b9