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

Disassembly:
sub esp, 0x2e8
push ebx
push ebp
mov ebp, ecx
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x2fc]
test ecx, ecx
push esi
mov esi, dword [esp + 0x2f8]
push edi
mov dword [esp + 0x2c], ebp
mov byte [esp + 0x40], al
mov dword [esp + 0x20], eax
je 0x479122
mov eax, ecx
jmp 0x47916a
cmp byte [esi], 0
je 0x479ca4
movsx ecx, byte [eax + esi]
add ecx, 0xffffffbf
cmp ecx, 0x32
ja case.0x47913f.68
xor edx, edx
mov dl, byte [ecx + 0x479cc8]
jmp dword [edx*4 + 0x479cb8]
add eax, 6
jmp 0x479164
mov cx, word [eax + esi + 1]
cmp cx, 0x1000
jl case.0x47913f.68
cmp cx, 0x11bd
jge case.0x47913f.68
add eax, 3
jmp 0x479164
inc eax
cmp byte [eax + esi], 0
jne 0x47912b
test eax, eax
je 0x479ca4
cmp dword [ebp], 0
jne 0x479ca4
lea ecx, [esp + 0xf4]
test ecx, ecx
mov dword [ebp + 0x648], 0xffffffff
jne 0x4791a4
mov dword [ebp], 1
mov edx, dword [str.Expression_Error:_OUTOFMEMORY]
push edx
jmp 0x479c97
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [esp + 0xf4]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 1
lea ecx, [esp + 0xb8]
push ecx
mov byte [esp + eax + 0xfc], 0
lea edx, [esp + 0x2c]
lea eax, [esp + 0xfc]
push edx
mov ecx, ebp
mov dword [esp + 0x30], eax
lea esi, [esp + 0xc0]
call fcn.00478e90
mov al, byte [esp + 0xb4]
test al, al
je 0x479b76
lea eax, [esp + 0xb4]
test eax, eax
je 0x479b76
mov ebp, dword [esp + 0x2c]
movsx eax, byte [esi]
add eax, 0xffffffd6
cmp eax, 5
ja case.0x47921c.44
jmp dword [eax*4 + 0x479cfc]
mov eax, dword [ebp + 0x648]
or edx, 0xffffffff
cmp eax, edx
je 0x479c36
mov ecx, dword [ebp + 0x648]
lea eax, [ebp + 0x448]
mov edi, ecx
shl edi, 4
add edi, eax
mov ebx, edi
mov edi, dword [ebx]
mov dword [esp + 0x64], edi
mov edi, dword [ebx + 4]
mov dword [esp + 0x68], edi
mov edi, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
dec ecx
mov dword [eax + 0x200], ecx
cmp dword [ebp + 0x648], edx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], ebx
je 0x479c26
mov edx, dword [eax + 0x200]
mov ecx, edx
shl ecx, 4
add ecx, eax
mov ebp, ecx
mov ebx, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [esp + 0xa8], ecx
mov ecx, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
dec edx
test bl, bl
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], ebp
mov dword [eax + 0x200], edx
jne 0x4792e3
mov dl, byte [esp + 0x64]
test dl, dl
jne 0x4792ca
imul ecx, edi
mov byte [esp + 0x10], bl
mov dword [esp + 0x18], ecx
jmp 0x479b27
fild dword [esp + 0xac]
mov byte [esp + 0x10], 1
fmul qword [esp + 0x6c]
fstp qword [esp + 0x18]
jmp 0x479b27
mov cl, byte [esp + 0x64]
test cl, cl
mov byte [esp + 0x10], 1
jne 0x479304
fild dword [esp + 0x6c]
fmul qword [esp + 0xac]
fstp qword [esp + 0x18]
jmp 0x479b27
fld qword [esp + 0xac]
fmul qword [esp + 0x6c]
fstp qword [esp + 0x18]
jmp 0x479b27
mov eax, dword [ebp + 0x648]
or edx, 0xffffffff
cmp eax, edx
je 0x479c36
mov eax, dword [ebp + 0x648]
lea ecx, [ebp + 0x448]
mov edi, eax
shl edi, 4
add edi, ecx
mov ebx, dword [edi]
mov dword [esp + 0x30], ebx
mov ebx, dword [edi + 4]
mov dword [esp + 0x34], ebx
mov ebx, dword [edi + 8]
mov edi, dword [edi + 0xc]
dec eax
mov dword [ecx + 0x200], eax
cmp dword [ebp + 0x648], edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], edi
je 0x479c26
mov edx, dword [ecx + 0x200]
mov eax, edx
shl eax, 4
add eax, ecx
mov ebx, eax
mov eax, dword [ebx]
mov edi, dword [ebx + 4]
mov dword [esp + 0x98], edi
mov edi, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
dec edx
test al, al
mov al, byte [esp + 0x30]
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], ebx
mov dword [ecx + 0x200], edx
jne 0x4793eb
test al, al
jne 0x4793c8
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x479c08
mov eax, edi
cdq
idiv ebx
mov byte [esp + 0x10], 0
mov dword [esp + 0x18], eax
jmp 0x479436
fld qword [esp + 0x38]
fcomp qword [0x746478]
fnstsw ax
test ah, 0x40
jne 0x479be3
fild dword [esp + 0x9c]
mov byte [esp + 0x10], 1
jmp 0x47942e
test al, al
jne 0x47940d
mov eax, dword [esp + 0x38]
test eax, eax
je 0x479bf6
fild dword [esp + 0x38]
mov byte [esp + 0x10], 1
fdivr qword [esp + 0x9c]
jmp 0x479432
fld qword [esp + 0x38]
fcomp qword [0x746478]
fnstsw ax
test ah, 0x40
jne 0x479c08
fld qword [esp + 0x9c]
mov byte [esp + 0x10], 1
fdiv qword [esp + 0x38]
fstp qword [esp + 0x18]
mov ebx, dword [ecx + 0x200]
mov edx, dword [esp + 0x14]
inc ebx
mov dword [ecx + 0x200], ebx
mov eax, ebx
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [eax], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
jmp 0x479b56
cmp dword [ebp + 0x648], 0xffffffff
je 0x479c26
mov ecx, dword [ebp + 0x648]
lea eax, [ebp + 0x448]
mov edx, ecx
shl edx, 4
add edx, eax
mov ebx, dword [edx]
mov edi, dword [edx + 4]
mov dword [esp + 0x78], edi
mov edi, dword [edx + 8]
mov edx, dword [edx + 0xc]
dec ecx
mov dword [eax + 0x200], ecx
cmp dword [ebp + 0x648], 0xffffffff
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edx
je 0x479c17
mov ecx, dword [eax + 0x200]
mov edx, ecx
shl edx, 4
add edx, eax
mov ebp, edx
mov edx, dword [ebp]
mov edi, dword [ebp + 4]
mov dword [esp + 0x88], edi
mov edi, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
dec ecx
test dl, dl
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], ebp
mov dword [eax + 0x200], ecx
jne 0x479523
test bl, bl
jne 0x47950a
mov ecx, dword [esp + 0x7c]
add edi, ecx
mov byte [esp + 0x10], bl
mov dword [esp + 0x18], edi
jmp 0x479b27
fild dword [esp + 0x8c]
mov byte [esp + 0x10], 1
fadd qword [esp + 0x7c]
fstp qword [esp + 0x18]
jmp 0x479b27
test bl, bl
mov byte [esp + 0x10], 1
jne 0x479540
fild dword [esp + 0x7c]
fadd qword [esp + 0x8c]
fstp qword [esp + 0x18]
jmp 0x479b27
fld qword [esp + 0x8c]
fadd qword [esp + 0x7c]
fstp qword [esp + 0x18]
jmp 0x479b27
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 1
jne case.0x47921c.44
cmp dword [ebp + 0x648], 0xffffffff
je 0x479c36
mov ecx, dword [ebp + 0x648]
lea eax, [ebp + 0x448]
mov edx, ecx
shl edx, 4
add edx, eax
mov ebx, edx
mov edx, dword [ebx]
mov edi, dword [ebx + 4]
mov dword [esp + 0x58], edi
mov edi, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
dec ecx
mov dword [eax + 0x200], ecx
cmp dword [ebp + 0x648], 0xffffffff
mov dword [esp + 0x54], edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], ebx
je 0x479648
mov edx, dword [eax + 0x200]
mov ecx, edx
shl ecx, 4
add ecx, eax
mov ebp, ecx
mov ebx, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x48], ecx
mov ecx, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
dec edx
test bl, bl
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], ebp
mov dword [eax + 0x200], edx
jne 0x479619
mov dl, byte [esp + 0x54]
test dl, dl
jne 0x479603
sub ecx, edi
mov byte [esp + 0x10], bl
mov dword [esp + 0x18], ecx
jmp 0x479b27
fild dword [esp + 0x4c]
mov byte [esp + 0x10], 1
fsub qword [esp + 0x5c]
fstp qword [esp + 0x18]
jmp 0x479b27
mov cl, byte [esp + 0x54]
test cl, cl
mov byte [esp + 0x10], 1
jne 0x479637
fild dword [esp + 0x5c]
fsubr qword [esp + 0x4c]
fstp qword [esp + 0x18]
jmp 0x479b27
fld qword [esp + 0x4c]
fsub qword [esp + 0x5c]
fstp qword [esp + 0x18]
jmp 0x479b27
test dl, dl
jne 0x47965b
neg edi
mov byte [esp + 0x10], dl
mov dword [esp + 0x18], edi
jmp 0x479b27
fld qword [esp + 0x5c]
mov byte [esp + 0x10], 1
fchs
fstp qword [esp + 0x18]
jmp 0x479b27
push esi
call fcn.0047b2d0
add esp, 4
test eax, eax
je 0x479694
push esi
mov byte [esp + 0x14], 0
call dword [sym.imp.MSVCRT.dll_atol]
add esp, 4
mov dword [esp + 0x18], eax
jmp 0x479b1d
push esi
call fcn.0047b330
add esp, 4
test eax, eax
je 0x4796b5
push esi
mov byte [esp + 0x14], 1
call dword [sym.imp.MSVCRT.dll_atof]
add esp, 4
jmp 0x479b19
movsx eax, byte [esi]
add eax, 0xffffffba
cmp eax, 0x2d
ja case.0x4796cc.80
xor ecx, ecx
mov cl, byte [eax + 0x479d40]
jmp dword [ecx*4 + 0x479d14]
movsx edx, word [esi + 1]
mov ecx, dword [esp + 0x300]
push 1
dec edx
push edx
mov byte [esp + 0x18], 0
call fcn.004ffb90
movsx eax, ax
mov dword [esp + 0x18], eax
jmp 0x479b1d
movsx ecx, word [esi + 1]
dec ecx
push 1
push ecx
mov ecx, dword [esp + 0x308]
mov byte [esp + 0x18], 0
call fcn.004ffc00
mov dword [esp + 0x18], eax
jmp 0x479b1d
movsx edx, word [esi + 1]
mov ecx, dword [esp + 0x300]
push 1
dec edx
push edx
mov byte [esp + 0x18], 1
call fcn.004ffc70
jmp 0x479b19
mov eax, dword [esi + 2]
fld dword [eax + 0x34]
mov byte [esp + 0x10], 0
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x18], eax
jmp 0x479773
mov ecx, dword [esi + 2]
fld dword [ecx + 0x34]
mov byte [esp + 0x10], 0
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x18], eax
jmp 0x479773
mov edx, dword [esi + 2]
fld dword [edx + 0x34]
mov byte [esp + 0x10], 1
fstp qword [esp + 0x18]
mov byte [esi + 2], 0x40
mov byte [esi + 3], 0x40
mov byte [esi + 4], 0x40
mov byte [esi + 5], 0x40
add esi, 2
jmp 0x479b1d
mov al, byte [esi + 1]
mov ecx, dword [esi + 2]
movsx eax, al
mov dl, byte [eax + esi + 2]
add eax, esi
cmp dl, 0x66
je 0x4797e6
cmp dl, 0x6c
je 0x4797cb
cmp dl, 0x73
jne 0x479b1d
movsx edx, word [eax + 3]
push 0
dec edx
push edx
mov byte [esp + 0x18], 0
call fcn.004ffb90
movsx eax, ax
mov dword [esp + 0x18], eax
jmp 0x479b1d
movsx edx, word [eax + 3]
push 0
dec edx
push edx
mov byte [esp + 0x18], 0
call fcn.004ffc00
mov dword [esp + 0x18], eax
jmp 0x479b1d
movsx eax, word [eax + 3]
push 0
dec eax
push eax
mov byte [esp + 0x18], 1
call fcn.004ffc70
jmp 0x479b19
mov ebp, dword [esi + 2]
mov bl, byte [esi + 1]
mov ecx, ebp
call fcn.004e7020
test eax, eax
je 0x479b1d
movsx ecx, bl
mov al, byte [ecx + esi + 2]
cmp al, 0x66
lea edi, [ecx + esi]
je 0x47986c
cmp al, 0x6c
je 0x47984c
cmp al, 0x73
jne 0x479b1d
mov ecx, ebp
mov byte [esp + 0x10], 0
call fcn.004e7020
movsx edx, byte [edi + 3]
mov eax, dword [eax]
movsx ecx, word [eax + edx*2 - 2]
mov dword [esp + 0x18], ecx
jmp 0x479b1d
mov ecx, ebp
mov byte [esp + 0x10], 0
call fcn.004e7020
movsx edx, byte [edi + 3]
mov eax, dword [eax + 4]
mov ecx, dword [eax + edx*4 - 4]
mov dword [esp + 0x18], ecx
jmp 0x479b1d
mov ecx, ebp
mov byte [esp + 0x10], 1
call fcn.004e7020
movsx edx, byte [edi + 3]
mov eax, dword [eax + 8]
fld dword [eax + edx*4 - 4]
jmp 0x479b19
mov byte [esi + 1], 0x40
mov byte [esi + 2], 0x40
mov byte [esi + 3], 0x40
mov byte [esi + 4], 0x40
mov byte [esi + 5], 0x40
jmp 0x479b56
movsx edi, word [esi + 1]
cmp edi, 0x110c
jg 0x47994a
je case.0x4798cc.4101
lea eax, [edi - 0x1001]
cmp eax, 0xfd
ja case.0x479963.4375
xor ecx, ecx
mov cl, byte [eax + 0x479d94]
jmp dword [ecx*4 + 0x479d70]
push 1
push esi
lea edx, [esp + 0x2c]
push edx
mov ecx, ebp
call fcn.00478e90
cmp byte [esi], 0x4d
jne 0x47998a
mov eax, dword [esi + 2]
mov dword [esp + 0x20], eax
jmp 0x479ac1
mov dl, byte [esi + 3]
mov byte [esp + 0x40], dl
jmp case.0x479963.4375
movsx eax, word [esi + 3]
mov dword [esp + 0x20], eax
jmp case.0x479963.4375
push 1
push esi
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebp
call fcn.00478e90
cmp byte [esi], 0x44
jne 0x479ad3
jmp 0x479aba
push 1
push esi
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebp
call fcn.00478e90
cmp byte [esi], 0x54
jne 0x479ad3
jmp 0x479aba
lea eax, [edi - 0x110f]
cmp eax, 0x9d
ja case.0x479963.4375
xor ecx, ecx
mov cl, byte [eax + 0x479eb8]
jmp dword [ecx*4 + 0x479e94]
push 1
push esi
lea edx, [esp + 0x2c]
push edx
mov ecx, ebp
call fcn.00478e90
cmp byte [esi], 0x52
jne 0x47998a
mov eax, dword [esi + 2]
mov dword [esp + 0x20], eax
jmp 0x479ac1
mov dword [ebp], 6
mov ecx, dword [str.Expression_Error:_BADOBJECTPOINTER]
push ecx
push 0x775998
call fcn.006e9a00
add esp, 8
jmp case.0x479963.4375
movsx edx, word [esi + 3]
mov dword [esp + 0x20], edx
jmp case.0x479963.4375
push 1
push esi
lea eax, [esp + 0x2c]
push eax
mov ecx, ebp
call fcn.00478e90
mov al, byte [esi]
cmp al, 0x66
je 0x479a13
cmp al, 0x6c
je 0x4799f5
cmp al, 0x73
jne 0x479a45
movsx ecx, word [esi + 1]
dec ecx
push 1
push ecx
mov ecx, dword [esp + 0x308]
call fcn.004ffb90
movsx edx, ax
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
jmp 0x479a27
movsx eax, word [esi + 1]
mov ecx, dword [esp + 0x300]
push 1
dec eax
push eax
call fcn.004ffc00
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
jmp 0x479a27
movsx ecx, word [esi + 1]
dec ecx
push 1
push ecx
mov ecx, dword [esp + 0x308]
call fcn.004ffc70
fst dword [esp + 0x28]
fcomp dword [0x746468]
fnstsw ax
test ah, 1
jne 0x479a45
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], edx
jmp case.0x479963.4375
mov dword [ebp], 5
mov eax, dword [str.Expression_Error:_SYNTAX]
push eax
push 0x775998
call fcn.006e9a00
add esp, 8
jmp case.0x479963.4375
push 1
push esi
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebp
call fcn.00478e90
cmp byte [esi], 0x4f
jne 0x479ad3
jmp 0x479aba
push 1
push esi
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebp
call fcn.00478e90
cmp byte [esi], 0x41
jne 0x479ad3
jmp 0x479aba
push 1
push esi
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebp
call fcn.00478e90
cmp byte [esi], 0x43
jne 0x479ad3
jmp 0x479aba
push 1
push esi
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebp
call fcn.00478e90
cmp byte [esi], 0x42
jne 0x479ad3
mov edx, dword [esi + 2]
mov dword [esp + 0x20], edx
mov byte [esi + 2], 0x40
mov byte [esi + 3], 0x40
mov byte [esi + 4], 0x40
mov byte [esi + 5], 0x40
jmp case.0x479963.4375
mov dword [ebp], 6
mov eax, dword [str.Expression_Error:_BADOBJECTPOINTER]
push eax
push 0x775998
call fcn.006e9a00
add esp, 8
jmp case.0x479963.4375
movsx ecx, word [esi + 3]
mov dword [esp + 0x20], ecx
cmp dword [ebp], 0
jne 0x479b1d
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x300]
push edx
push eax
push edi
mov byte [esp + 0x1c], 1
call fcn.00505770
fstp qword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + 0x448]
mov ebx, dword [eax + 0x200]
mov edx, dword [esp + 0x10]
inc ebx
mov dword [eax + 0x200], ebx
mov ecx, ebx
shl ecx, 4
add ecx, eax
mov eax, dword [esp + 0x14]
mov dword [ecx], edx
mov edx, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
test esi, esi
je 0x479b76
mov ebp, dword [esp + 0x2c]
push 1
push esi
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebp
call fcn.00478e90
cmp byte [esi], 0
jne 0x47920d
mov esi, dword [esp + 0x2c]
mov eax, dword [esi + 0x648]
or edi, 0xffffffff
cmp eax, edi
je 0x479c8a
mov ecx, dword [esi + 0x648]
lea eax, [esi + 0x448]
mov edx, ecx
shl edx, 4
add edx, eax
mov ebx, edx
mov edx, dword [ebx]
mov ebp, dword [ebx + 4]
mov dword [esp + 0x48], ebp
mov ebp, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
dec ecx
mov dword [eax + 0x200], ecx
cmp dword [esi + 0x648], edi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebx
jne 0x479c7c
test dl, dl
jne 0x479c6b
fild dword [esp + 0x4c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2e8
ret 0xc
mov dword [ebp], 4
mov edx, dword [str.Expression_Error:_DIVIDEBYZERO]
push edx
jmp 0x479c97
mov dword [ebp], 4
mov eax, dword [str.Expression_Error:_DIVIDEBYZERO]
push eax
jmp 0x479c97
mov dword [ebp], 4
mov ecx, dword [str.Expression_Error:_DIVIDEBYZERO]
jmp 0x479c96
mov dword [ebp], 3
mov ecx, dword [str.Expression_Error:_STACKUNDERFLOW]
jmp 0x479c96
mov dword [ebp], 3
mov edx, dword [str.Expression_Error:_STACKUNDERFLOW]
push edx
jmp 0x479c97
mov dword [ebp], 3
mov eax, dword [str.Expression_Error:_STACKUNDERFLOW]
push eax
jmp 0x479c97
push str.Dont_use_Journal_in_an_if_statement.
call fcn.00477400
add esp, 4
mov dword [ebp], 5
jmp 0x479c90
mov dword [ebp], 5
mov edx, dword [str.Expression_Error:_SYNTAX]
push edx
jmp 0x479c97
fld qword [esp + 0x4c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2e8
ret 0xc
mov dword [esi], 5
mov eax, dword [str.Expression_Error:_SYNTAX]
push eax
jmp 0x479c97
mov dword [esi], 5
mov ecx, dword [str.Expression_Error:_SYNTAX]
push ecx
push 0x775998
call fcn.006e9a00
add esp, 8
fld qword [0x746478]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2e8
ret 0xc