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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ecx, dword [edx]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x34], edx
mov dword [esp + 0x48], 0
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x30], eax
call sym._skip__OOZOOZOOZcompilerZrenderer_u729_4
mov dword [esp], 0x4db1c8
mov edi, eax
call sym.___emutls_get_address
mov ebp, eax
movzx eax, byte [eax]
mov byte [esp + 0x28], al
test al, al
jne 0x4706fe
test edi, edi
je 0x470626
movzx eax, byte [edi + 0xc]
cmp al, 1
sete dl
cmp al, 0xe
sete al
or dl, al
mov byte [esp + 0x28], dl
je 0x470626
mov eax, dword [edi + 0x28]
mov dword [esp + 0x40], 0
test byte [eax + 0x39], 8
jne 0x470730
mov edx, dword [edi + 0x20]
lea ecx, [esp + 0x40]
call sym._eqcopy___OOZOOZOOZcompilerZast_u3512_8
movzx eax, byte [ebp]
test al, al
jne 0x4705fb
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], 0
xor esi, esi
movzx ecx, byte [eax + 0x10]
cmp cl, 0x17
ja 0x470908
mov dword [esp + 0x38], edi
xor ebx, ebx
mov edi, esi
cmp ebx, edi
jge 0x470a88
mov eax, dword [esp + 0x40]
movzx ecx, byte [eax + 0x10]
mov edx, ecx
shr dl, 3
movzx edx, dl
movzx esi, byte [edx + 0x4eaf24]
mov edx, ecx
and edx, 7
bt esi, edx
jb 0x470a98
mov edx, dword [eax + 0x18]
test ebx, ebx
js 0x4709d0
cmp ebx, edx
jge 0x4709d0
mov eax, dword [eax + 0x1c]
lea ecx, [esp + 0x44]
mov edx, dword [eax + ebx*4 + 4]
call sym._eqcopy___OOZOOZOOZcompilerZast_u3512_8
movzx eax, byte [ebp]
test al, al
jne 0x4705d8
mov eax, dword [esp + 0x44]
movzx ecx, byte [eax + 0x10]
mov edx, ecx
shr dl, 3
movzx edx, dl
movzx esi, byte [edx + 0x4eae24]
mov edx, ecx
and edx, 7
bt esi, edx
jae 0x470b18
mov esi, dword [eax + 0x18]
mov ecx, dword [esi + 0x48]
mov eax, ecx
xor ecx, dword [esp + 0x2c]
cdq
mov eax, dword [esp + 0x30]
xor eax, edx
or eax, ecx
je 0x470b50
add ebx, 1
jno 0x470523
mov edi, dword [esp + 0x38]
call sym._raiseOverflow
movzx eax, byte [ebp]
jmp 0x4705dc
mov edi, dword [esp + 0x38]
mov byte [ebp], 0
mov ecx, dword [esp + 0x44]
mov byte [esp + 0x38], al
call sym._eqdestroy___OOZOOZOOZcompilerZast_u3509_4
movzx edx, byte [ebp]
movzx eax, byte [esp + 0x38]
test dl, dl
cmovne eax, edx
mov byte [ebp], 0
mov ecx, dword [esp + 0x40]
mov byte [esp + 0x38], al
call sym._eqdestroy___OOZOOZOOZcompilerZast_u3509_4
cmp byte [ebp], 0
jne 0x4706fe
movzx eax, byte [esp + 0x38]
mov byte [ebp], al
test al, al
jne 0x4706fe
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0xc]
test al, 2
je 0x4707c0
imul eax, dword [esp + 0x78], 8
jo 0x470bf0
test eax, eax
jle 0x470930
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call sym._nsuToBin_12
mov ebx, eax
movzx eax, byte [ebp]
sub esp, 0xc
mov dword [esp + 0x2c], edx
mov byte [esp + 0x28], al
test al, al
jne 0x4706fe
lea ecx, [ebx + 2]
mov esi, 0x6230
call sym._rawNewString_4
mov ecx, edx
lea edx, [eax + edx + 4]
mov word [edx], si
mov esi, eax
add esi, 2
mov byte [edx + 2], 0
jo 0x470c08
test ebx, ebx
jle 0x4706e2
mov eax, ebx
add eax, 1
jo 0x470ce2
test eax, eax
js 0x470ad0
lea edx, [esi + ecx + 4]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 8], eax
add ecx, 4
mov dword [esp], edx
mov dword [esp + 4], ecx
call sym._memcpy
add ebx, esi
mov ecx, dword [esp + 0x28]
jo 0x470ce2
mov esi, ebx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], ecx
test eax, eax
jne 0x4708e0
movzx eax, byte [ebp]
mov byte [esp + 0x28], al
mov byte [ebp], 0
mov ecx, edi
call sym._eqdestroy___OOZOOZOOZcompilerZast_u3634_4
cmp byte [ebp], 0
jne 0x470717
movzx eax, byte [esp + 0x28]
mov byte [ebp], al
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov eax, dword [eax + 0x24]
mov ecx, dword [eax + 4]
add ecx, 1
call sym._rawNewString_4
mov esi, eax
mov eax, dword [edi + 0x28]
mov ecx, edx
mov eax, dword [eax + 0x24]
mov ebx, dword [eax + 4]
test ebx, ebx
jle 0x470796
mov eax, dword [eax + 8]
mov edx, ebx
add edx, 1
mov dword [esp + 0x38], eax
jo 0x470cf4
test edx, edx
js 0x470a40
lea eax, [esi + ecx + 4]
mov dword [esp + 8], edx
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], ecx
add eax, 4
mov dword [esp + 4], eax
call sym._memcpy
add ebx, esi
mov ecx, dword [esp + 0x3c]
jo 0x470cf4
mov esi, ebx
mov eax, esi
mov byte [esi + ecx + 4], 0x2e
add eax, 1
jo 0x4709f0
mov byte [eax + ecx + 4], 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
jmp 0x4704e8
test al, 4
je 0x470970
cmp dword [esp + 0x78], 7
jg 0x470801
imul ecx, dword [esp + 0x78], 8
jo 0x470bf0
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl eax, cl
shl edx, cl
sub eax, 1
sbb edx, 0
mov ecx, eax
jo 0x470bf0
and dword [esp + 0x2c], ecx
and dword [esp + 0x30], edx
imul eax, dword [esp + 0x78], 3
jo 0x470bf0
test eax, eax
jle 0x470930
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call sym._nsuToOct_12
mov ebx, eax
movzx eax, byte [ebp]
sub esp, 0xc
mov esi, edx
mov byte [esp + 0x28], al
test al, al
jne 0x4706fe
lea ecx, [ebx + 2]
call sym._rawNewString_4
mov ecx, eax
lea eax, [eax + edx + 4]
mov word [eax], 0x6f30
mov byte [eax + 2], 0
mov eax, ecx
add eax, 2
mov dword [esp + 0x28], eax
jo 0x470c8f
test ebx, ebx
jle 0x4708b1
mov eax, ebx
add eax, 1
jo 0x470d14
test eax, eax
js 0x470c4e
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov dword [esp + 8], eax
lea ecx, [ecx + edx + 4]
lea edx, [esi + 4]
mov dword [esp + 4], edx
mov dword [esp], ecx
call sym._memcpy
add ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
jo 0x470d14
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], eax
test esi, esi
je 0x4706f6
test dword [esi], 0x40000000
jne 0x4706f6
mov dword [esp], esi
call sym._deallocShared
jmp 0x4706f6
mov eax, dword [eax]
mov dword [esp + 0x28], eax
test eax, 0x40000000
jne 0x4706f6
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym._deallocShared
jmp 0x4706f6
mov edx, ecx
shr dl, 3
movzx edx, dl
movzx ebx, byte [edx + 0x4eaf24]
mov edx, ecx
and edx, 7
bt ebx, edx
jb 0x470a08
mov esi, dword [eax + 0x18]
jmp 0x47051b
mov dword [esp], eax
sar eax, 0x1f
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
call sym._raiseRangeErrorI
movzx eax, byte [ebp]
mov byte [esp + 0x28], al
jmp 0x4706fe
test al, 8
je 0x470c22
imul eax, dword [esp + 0x78], 2
jo 0x470bf0
test eax, eax
jle 0x470930
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call sym._toHex__OOZOOZOOZcompilerZrenderer_u775_12
mov ebx, eax
movzx eax, byte [ebp]
sub esp, 0xc
mov esi, edx
mov byte [esp + 0x28], al
test al, al
jne 0x4706fe
lea ecx, [ebx + 2]
call sym._rawNewString_4
mov ecx, eax
lea eax, [eax + edx + 4]
mov word [eax], 0x7830
jmp 0x470856
sub edx, 1
mov dword [esp], ebx
mov edi, dword [esp + 0x38]
mov dword [esp + 4], edx
call sym._raiseIndexError2
movzx eax, byte [ebp]
jmp 0x4705dc
mov dword [esp + 0x38], ecx
call sym._raiseOverflow
mov ecx, dword [esp + 0x38]
mov eax, esi
jmp 0x4707ab
call sym._dollar___OOZOOZOOZcompilerZast_u192_4
mov dword [esp + 8], eax
mov eax, dword [0x4eaecc]
mov dword [esp + 0xc], edx
mov edx, dword [0x4eaed0]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._raiseFieldErrorStr
movzx eax, byte [ebp]
test al, al
jne 0x4705dc
jmp 0x47051b
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
mov dword [esp + 0x38], ecx
call sym._raiseRangeErrorI
mov ecx, dword [esp + 0x38]
jmp 0x470796
mov edi, dword [esp + 0x38]
xor eax, eax
jmp 0x4705dc
mov edi, dword [esp + 0x38]
call sym._dollar___OOZOOZOOZcompilerZast_u192_4
mov dword [esp + 8], eax
mov eax, dword [0x4eaecc]
mov dword [esp + 0xc], edx
mov edx, dword [0x4eaed0]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._raiseFieldErrorStr
movzx eax, byte [ebp]
jmp 0x4705dc
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
mov dword [esp + 0x28], ecx
call sym._raiseRangeErrorI
mov ecx, dword [esp + 0x28]
jmp 0x4706e2
mov edi, dword [esp + 0x38]
call sym._dollar___OOZOOZOOZcompilerZast_u192_4
mov dword [esp + 8], eax
mov eax, dword [0x4eadc0]
mov dword [esp + 0xc], edx
mov edx, dword [0x4eadc4]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._raiseFieldErrorStr
movzx eax, byte [ebp]
jmp 0x4705dc
mov eax, dword [esi + 0x24]
lea ecx, [esp + 0x48]
mov edi, dword [esp + 0x38]
mov edx, dword [eax + 4]
call sym._prepareAdd_8
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 0x18]
mov eax, dword [eax + 0x24]
mov ebx, dword [eax + 4]
test ebx, ebx
jle 0x470bbb
mov edx, ebx
mov esi, dword [eax + 8]
add edx, 1
jo 0x470d06
test edx, edx
js 0x470ca5
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 8], edx
lea ecx, [ecx + eax + 4]
lea eax, [esi + 4]
mov dword [esp + 4], eax
mov dword [esp], ecx
call sym._memcpy
add ebx, dword [esp + 0x48]
jo 0x470d06
mov dword [esp + 0x48], ebx
mov ecx, dword [esp + 0x44]
call sym._eqdestroy___OOZOOZOOZcompilerZast_u3509_4
movzx eax, byte [ebp]
test al, al
jne 0x4705fb
mov ecx, dword [esp + 0x40]
call sym._eqdestroy___OOZOOZOOZcompilerZast_u3509_4
cmp byte [ebp], 0
jne 0x4706fe
mov ecx, edi
call sym._eqdestroy___OOZOOZOOZcompilerZast_u3634_4
jmp 0x470717
call sym._raiseOverflow
movzx eax, byte [ebp]
mov byte [esp + 0x28], al
jmp 0x4706fe
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], eax
call sym._raiseOverflow
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
jmp 0x47069e
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call sym._dollar___systemZdollars_u11_8
sub esp, 8
mov dword [esp + 0x48], eax
movzx eax, byte [ebp]
mov dword [esp + 0x4c], edx
mov byte [esp + 0x28], al
jmp 0x4706fe
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
mov dword [esp + 0x2c], edx
call sym._raiseRangeErrorI
mov edx, dword [esp + 0x2c]
jmp 0x4708b1
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
call sym._raiseOverflow
mov edx, dword [esp + 0x2c]
jmp 0x470869
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
mov ecx, dword [esp + 0x44]
jmp 0x470bbb
mov dword [esp + 0x28], ecx
call sym._raiseOverflow
mov ecx, dword [esp + 0x28]
jmp 0x4706e2
mov dword [esp + 0x38], ecx
call sym._raiseOverflow
mov ecx, dword [esp + 0x38]
jmp 0x470796
call sym._raiseOverflow
mov ecx, dword [esp + 0x44]
jmp 0x470bbb
mov dword [esp + 0x2c], edx
call sym._raiseOverflow
mov edx, dword [esp + 0x2c]
jmp 0x4708b1