Function at 0x47d5a0
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x118
mov eax, dword [0x4b3008]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov eax, dword [ebx + 0x288]
sub eax, dword [ebx + 0x284]
sar eax, 2
test eax, eax
je 0x47d9de
push 0x7c1d48
lea eax, [ebp - 0x10c]
push str._sresult.LostGDP.dat
push eax
call fcn.00404440
add esp, 0xc
lea eax, [ebp - 0x10c]
push 0x4a6fb8
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
add esp, 8
mov dword [ebp - 0x110], eax
test eax, eax
je 0x47d9de
push 0x4aa3a0
push eax
call fcn.00411e60
mov eax, dword [ebx + 0x288]
xor edi, edi
mov esi, dword [ebx + 0x284]
add esp, 8
mov dword [ebp - 0x114], edi
mov dword [ebp - 0x118], eax
cmp esi, eax
je 0x47d734
nop dword [eax]
mov edi, dword [esi]
push 0
push 0x4b3abc
push 0x4b3b30
push 0
push edi
call sub.VCRUNTIME140.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x47d71f
cmp dword [eax + 0x49dc], 2
jg 0x47d71f
push dword [edi + 0x4818]
mov ecx, ebx
call fcn.004385a0
sub esp, 8
movsd xmm0, qword [eax + 0x48e8]
movsd xmm1, qword [eax + 0x4920]
movsd xmm2, qword [eax + 0x4908]
movsd qword [esp], xmm0
push dword [eax + 0x4a5c]
movsd xmm0, qword [eax + 0x4a50]
mulsd xmm0, qword [0x4aeb28]
sub esp, 0x38
movsd qword [esp + 0x30], xmm0
movaps xmm0, xmm1
subsd xmm0, xmm2
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [eax + 0x4928]
movsd qword [esp + 0x20], xmm1
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [eax + 0x48c8]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x10], xmm1
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm0
push dword [eax + 0x4818]
push str._d__lf__lf__lf__lf__lf__lf__lf__d__lf_n
push dword [ebp - 0x110]
call fcn.00411e60
add esp, 0x50
mov dword [ebp - 0x114], 1
add esi, 4
cmp esi, dword [ebp - 0x118]
jne 0x47d640
mov edi, dword [ebp - 0x114]
mov eax, dword [ebx + 0x288]
mov esi, dword [ebx + 0x284]
mov dword [ebp - 0x118], eax
cmp esi, eax
je 0x47d896
nop
mov edi, dword [esi]
push 0
push 0x4b3abc
push 0x4b3b30
push 0
push edi
call sub.VCRUNTIME140.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x47d881
cmp dword [eax + 0x49dc], 3
jne 0x47d881
mov edi, dword [edi + 0x4818]
mov ecx, ebx
push edi
call fcn.004385a0
sub esp, 8
mov dword [ebp - 0x114], 1
movsd xmm4, qword [eax + 0x48e8]
mov ecx, dword [eax + 0x4a5c]
movsd xmm0, qword [eax + 0x4a50]
mulsd xmm0, qword [0x4aeb28]
movsd xmm2, qword [eax + 0x4920]
movsd xmm3, qword [eax + 0x4908]
movsd qword [esp], xmm4
push ecx
sub esp, 0x38
cmp dword [eax + 0x49dc], 3
movsd qword [esp + 0x30], xmm0
jne 0x47d824
movaps xmm0, xmm2
subsd xmm0, xmm3
movsd qword [esp + 0x28], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x20], xmm2
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [eax + 0x48c8]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x10], xmm2
movsd qword [esp + 8], xmm3
movsd qword [esp], xmm0
push dword [eax + 0x4818]
jmp 0x47d86e
movsd xmm1, qword [eax + 0x4910]
subsd xmm2, xmm3
movaps xmm0, xmm2
subsd xmm0, xmm1
movsd qword [esp + 0x28], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x20], xmm2
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [eax + 0x4918]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x10], xmm2
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
push edi
push str._d__lf__lf__lf__lf__lf__lf__lf__d__lf_n
push dword [ebp - 0x110]
call fcn.00411e60
add esp, 0x50
add esi, 4
cmp esi, dword [ebp - 0x118]
jne 0x47d750
mov edi, dword [ebp - 0x114]
mov eax, dword [ebx + 0x288]
mov esi, dword [ebx + 0x284]
mov dword [ebp - 0x118], eax
cmp esi, eax
je 0x47d9bb
mov edi, dword [esi]
push 0
push 0x4b3abc
push 0x4b3b30
push 0
push edi
call sub.VCRUNTIME140.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x47d9a6
cmp dword [eax + 0x49dc], 5
jne 0x47d9a6
mov edi, dword [edi + 0x4818]
mov ecx, ebx
push edi
call fcn.004385a0
test eax, eax
je 0x47d9a6
movsd xmm0, qword [eax + 0x48e8]
sub esp, 8
mov ecx, dword [eax + 0x49dc]
movsd xmm1, qword [eax + 0x4920]
mov dword [ebp - 0x114], 1
movsd qword [esp], xmm0
movsd xmm0, qword [eax + 0x4a50]
push dword [eax + 0x4a5c]
mulsd xmm0, qword [0x4aeb28]
sub esp, 0x38
movsd qword [esp + 0x30], xmm0
xorps xmm0, xmm0
cmp ecx, 5
jne 0x47d964
unpcklpd xmm1, xmm1
movups xmmword [esp + 0x20], xmm1
movsd qword [esp + 0x18], xmm0
movsd qword [esp + 0x10], xmm1
movups xmmword [esp], xmm0
push dword [eax + 0x4818]
jmp 0x47d993
subsd xmm1, qword [eax + 0x4908]
cmp ecx, 3
je 0x47d979
subsd xmm1, qword [eax + 0x4910]
unpcklpd xmm1, xmm1
movups xmmword [esp + 0x20], xmm1
movsd qword [esp + 0x18], xmm0
movsd qword [esp + 0x10], xmm1
movups xmmword [esp], xmm0
push edi
push str._d__lf__lf__lf__lf__lf__lf__lf__d__lf_n
push dword [ebp - 0x110]
call fcn.00411e60
add esp, 0x50
add esi, 4
cmp esi, dword [ebp - 0x118]
jne 0x47d8b0
mov edi, dword [ebp - 0x114]
push dword [ebp - 0x110]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
test edi, edi
jne 0x47d9de
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll_remove]
add esp, 4
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004a034d
mov esp, ebp
pop ebp
ret 4