Function at 0x408eb0
Capabilities:
Get common file path
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x41e498
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
mov eax, dword [0x425fd0]
xor eax, esp
mov dword [esp + 0xe0], eax
push ebx
push esi
push edi
mov eax, dword [0x425fd0]
xor eax, esp
push eax
lea eax, [esp + 0xf8]
mov dword fs:[0], eax
fldz
xor eax, eax
mov dword [esp + 0x30], eax
fst qword [esp + 0x44]
fldz
mov dword [esp + 0x78], eax
fst dword [esp + 0x14]
xor ecx, ecx
fst dword [esp + 0x18]
xor edx, edx
fxch st(1)
mov dword [esp + 0x54], eax
mov word [esp + 0x38], cx
fst qword [esp + 0x4c]
mov dword [esp + 0x58], eax
mov word [esp + 0x3c], dx
fstp qword [esp + 0x64]
mov dword [esp + 0xa8], 0xf
mov dword [esp + 0xa4], eax
fstp dword [esp + 0x2c]
mov byte [esp + 0x94], al
push 0x118
mov dword [esp + 0x104], eax
call fcn.0040b267
push eax
mov dword [esp + 0x94], eax
call fcn.00403100
add esp, 8
push 0
call fcn.0040af8a
mov ebx, dword [esp + 0x5c]
mov esi, edx
add esp, 4
cmp esi, ebx
mov edi, eax
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], esi
jg 0x408f9b
jl 0x408f91
cmp edi, dword [esp + 0x54]
jae 0x408f9b
xor ebx, ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov ax, word [0x4234a4]
movsx ecx, ax
mov dword [esp + 0x34], ecx
fild dword [esp + 0x34]
fsub qword [esp + 0x4c]
call fcn.0040b060
mov word [0x4234a4], ax
mov eax, edi
sub eax, dword [esp + 0x54]
mov edx, esi
sbb edx, ebx
mov dword [esp + 0x20], edx
js 0x409bb9
jg 0x408fdc
cmp eax, 0x708
jbe 0x409bb9
or ecx, 0xffffffff
add dword [esp + 0x3c], ecx
mov ax, word [esp + 0x3c]
movsx edx, ax
mov dword [esp + 0x34], edx
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], esi
fild dword [esp + 0x34]
fadd qword [0x423478]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
mov dword [esp + 0x34], eax
fsubp st(1)
fadd dword [0x42312c]
fstp dword [0x42312c]
fld qword [esp + 0x44]
fadd qword [0x41f928]
fsub qword [0x4232a8]
fcomp qword [0x41f920]
fnstsw ax
test ah, 5
jp 0x409091
inc dword [0x423414]
fld dword [esp + 0x2c]
mov ecx, dword [0x4234a0]
add ecx, dword [0x423414]
mov dword [esp + 0x40], ecx
fild dword [esp + 0x40]
fcompp
fnstsw ax
test ah, 1
jne 0x4090ae
fld qword [esp + 0x44]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [esp + 0x44]
fadd qword [str.UA_]
fstp qword [str.UA_]
fld qword [str.UA_]
fstp st(0)
fld qword [esp + 0x44]
mov edx, dword [esp + 0x78]
fstp st(0)
jmp 0x4090ae
mov ax, word [0x425eb8]
movsx edx, ax
mov eax, 0xa53f356f
sub eax, edx
add dword [0x42474c], eax
add word [0x425eb8], cx
shr edi, 9
push 0x408
lea ebx, [edi + 0x55]
push 0x424c20
mov dword [esp + 0x64], edi
mov dword [esp + 0x24], ebx
call fcn.00401e10
push 0xd
push 0x4240c0
mov dword [esp + 0x84], eax
call fcn.00401e10
mov esi, eax
push 0xaf1
push 0x425128
mov dword [esp + 0x78], esi
call fcn.00401e10
push 0x31e
push 0x4243a8
mov dword [esp + 0x60], eax
call fcn.00401e10
add esp, 0x20
mov dword [esp + 0x70], eax
cmp edi, ebx
je 0x409740
mov eax, dword [0x4277e0]
push 0
push eax
call fcn.00402c50
add esp, 8
test eax, eax
jne 0x40913f
mov ecx, dword [0x4277e8]
mov edx, dword [0x427324]
push ecx
push edx
call fcn.00402990
add esp, 8
mov eax, dword [esp + 0x30]
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fadd qword [esp + 0x44]
inc dword [esp + 0x30]
fcomp qword [0x41f918]
fnstsw ax
fld qword [esp + 0x44]
fld1
fadd st(1), st(0)
fxch st(1)
fstp qword [esp + 0x44]
test ah, 0x44
jnp 0x409184
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fadd qword [esp + 0x64]
fstp qword [esp + 0x64]
jmp 0x40919a
fld dword [esp + 0x18]
fadd qword [0x41f910]
fstp qword [esp + 0x4c]
fsubr dword [esp + 0x18]
fstp dword [esp + 0x18]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x40]
push ecx
push edx
push eax
lea ecx, [esp + 0xb8]
push ecx
call fcn.00402230
fld qword [esp + 0x74]
mov dx, word [0x424158]
movsx eax, dx
sub eax, 0xf308df6
mov dword [esp + 0x34], eax
push 0x8b
push 0x423088
fild dword [esp + 0x3c]
fsubp st(1)
fstp qword [esp + 0x7c]
dec word [0x424158]
call fcn.00401e10
mov ebx, eax
mov eax, dword [esp + 0x78]
add esp, 0x18
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4091f8
mov edi, ebx
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x409204
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x2710
rep movsb byte es:[edi], byte [esi]
push 0
lea ecx, [esp + 0x98]
push ecx
lea edx, [esp + 0xb8]
push ebx
push edx
call fcn.00408790
xor eax, eax
fldz
push 0x8b
push eax
fstp qword [esp + 0x40]
mov word [esp + 0x40], ax
push ebx
call fcn.0040b110
movzx ecx, word [0x425ea4]
add ecx, 0x224ec574
mov word [0x425ea4], cx
push ebx
call fcn.0040b18a
mov eax, dword [0x425e90]
mov edx, dword [esp + 0x54]
add eax, 0xe887cc71
imul edx, eax
mov eax, dword [esp + 0xb8]
add esp, 0x24
cmp dword [esp + 0xa8], 0x10
mov dword [esp + 0x30], edx
jae 0x40929a
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x74]
push ecx
push eax
push edx
call fcn.00408470
add esp, 0xc
cmp eax, 9
jge 0x4092d3
fld dword [0x425eb0]
mov eax, dword [0x4232e4]
mov dword [esp + 0x24], eax
fisub dword [esp + 0x24]
fstp dword [0x425eb0]
jmp 0x409710
mov ecx, dword [esp + 0x94]
mov edi, 0x10
cmp dword [esp + 0xa8], edi
jae 0x4092ef
lea ecx, [esp + 0x94]
mov edx, dword [ecx]
xor ecx, ecx
cmp ecx, dword [esp + 0x80]
jl 0x409710
jg 0x40930c
cmp edx, dword [esp + 0x7c]
jb 0x409710
fld dword [0x424108]
lea esi, [eax - 1]
fmul dword [esp + 0x18]
fstp dword [esp + 0x18]
cmp esi, dword [esp + 0xa4]
jbe 0x40932b
call fcn.0040bc02
mov eax, dword [esp + 0x94]
cmp dword [esp + 0xa8], edi
jae 0x409342
lea eax, [esp + 0x94]
mov byte [eax + esi], 0
mov eax, dword [esp + 0x94]
cmp dword [esp + 0xa8], edi
jae 0x40935d
lea eax, [esp + 0x94]
lea ecx, [esp + 0xac]
add eax, 8
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409387
test dl, dl
je 0x409383
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409387
add eax, 2
add ecx, 2
test dl, dl
jne 0x409367
xor eax, eax
jmp 0x40938c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x409710
fld qword [0x423478]
fsub qword [0x41f908]
fld dword [0x4250bc]
fld dword [esp + 0x2c]
mov cx, word [0x4242a8]
dec word [0x4242a8]
fsubp st(2)
movsx edx, cx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fsubp st(1)
fucompp
fnstsw ax
fld dword [0x4250bc]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [0x4250bc]
fld qword [0x423478]
fadd st(1)
fstp qword [0x423478]
test ah, 0x44
jnp 0x4093fe
fstp st(0)
fld dword [0x41f900]
fstp dword [esp + 0x14]
jmp 0x40942c
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
mov ax, word [esp + 0x38]
fsub qword [0x41f8f8]
movsx ecx, ax
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
faddp st(1)
call fcn.0040b060
mov word [esp + 0x38], ax
mov ebx, dword [esp + 0xa8]
mov edx, dword [esp + 0x94]
cmp ebx, edi
jb 0x409521
mov edi, edx
test edx, edx
je 0x409475
mov eax, edx
cmp ebx, 0x10
jae 0x409456
lea eax, [esp + 0x94]
cmp eax, edi
ja 0x409475
mov eax, edx
cmp ebx, 0x10
jae 0x409468
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0xa4]
add eax, ecx
cmp edi, eax
jbe 0x40948f
call fcn.0040bc02
mov ebx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x94]
lea esi, [esp + 0x90]
mov dword [esp + 0x88], edi
lea ecx, [ecx]
mov eax, edx
cmp ebx, 0x10
jae 0x4094ae
lea eax, [esp + 0x94]
lea edi, [eax + ecx]
test edi, edi
je 0x4094db
mov eax, edx
cmp ebx, 0x10
jae 0x4094c3
lea eax, [esp + 0x94]
cmp eax, edi
ja 0x4094db
mov eax, edx
cmp ebx, 0x10
jae 0x4094d5
lea eax, [esp + 0x94]
add eax, ecx
cmp edi, eax
jbe 0x4094e0
call fcn.0040bc02
cmp esi, 0xfffffffc
je 0x4094f9
test esi, esi
je 0x4094f4
lea edx, [esp + 0x90]
cmp esi, edx
je 0x4094f9
call fcn.0040bc02
mov ebx, dword [esp + 0x88]
cmp ebx, edi
je 0x40958c
cmp esi, 0xfffffffc
je 0x40953e
test esi, esi
jne 0x409516
call fcn.0040bc02
cmp dword [esi + 0x18], 0x10
jb 0x40952d
mov eax, dword [esi + 4]
jmp 0x409530
lea edi, [esp + 0x94]
jmp 0x409448
lea eax, [esi + 4]
mov ecx, dword [esi + 0x14]
add ecx, eax
cmp ebx, ecx
jb 0x40953e
call fcn.0040bc02
mov byte [ebx], 0
cmp esi, 0xfffffffc
je 0x40956b
test esi, esi
jne 0x40954f
call fcn.0040bc02
cmp dword [esi + 0x18], 0x10
jb 0x40955a
mov eax, dword [esi + 4]
jmp 0x40955d
lea eax, [esi + 4]
mov edx, dword [esi + 0x14]
add edx, eax
cmp ebx, edx
jb 0x40956b
call fcn.0040bc02
inc dword [esp + 0x88]
mov ebx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x94]
jmp 0x4094a0
mov eax, dword [0x425070]
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fld qword [esp + 0x4c]
fadd qword [0x41f8f0]
fsubp st(1)
call fcn.0040b060
push 0x7e
mov dword [0x425070], eax
push 0x423088
call fcn.00401e10
mov cx, word [0x4240d8]
movsx edx, cx
mov ecx, dword [0x4250d8]
mov esi, eax
mov eax, 0x292f2c28
sub eax, edx
mov edx, 0x7ae64e52
sub edx, ecx
add esp, 8
cmp eax, edx
jl 0x409607
mov eax, dword [esp + 0x30]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fld qword [0x424218]
fsubr qword [0x41f8e8]
fsubp st(1)
call fcn.0040b060
mov dword [esp + 0x30], eax
jmp 0x409615
fld dword [0x424108]
fmul dword [esp + 0x18]
fstp dword [esp + 0x18]
push 0
push 0
lea ecx, [esp + 0x98]
push ecx
lea edx, [esp + 0xb8]
push esi
push edx
call fcn.00408790
fldz
xor eax, eax
fstp qword [esp + 0x38]
push 0x7e
push eax
mov word [esp + 0x40], ax
push esi
call fcn.0040b110
movzx ecx, word [0x425ea4]
add ecx, 0x224ec574
mov word [0x425ea4], cx
push esi
call fcn.0040b18a
add esp, 0x24
fld dword [esp + 0x18]
fcomp dword [0x41f8e0]
fnstsw ax
test ah, 1
jne 0x409687
fld dword [esp + 0x18]
fsub qword [0x41f8d8]
fmul qword [esp + 0x4c]
fstp qword [esp + 0x4c]
jmp 0x4096a1
fld qword [0x424338]
fsub qword [0x41f8d0]
fsub qword [0x41f8c8]
fmul dword [esp + 0x14]
fstp dword [esp + 0x14]
push 0xc
push 0x4241b4
call fcn.00401e10
add esp, 8
mov esi, eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4096b5
sub eax, edx
push eax
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x9c]
call fcn.00404b70
fldz
mov edi, eax
fstp qword [esp + 0x24]
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
xor edx, edx
mov dword [esi + 8], eax
mov word [esp + 0x24], dx
movzx eax, word [0x425ea4]
add eax, 0x224ec574
push esi
mov word [0x425ea4], ax
call fcn.0040b18a
mov ecx, dword [esp + 0xa8]
add ecx, 0xfffffff5
add esp, 4
cmp edi, ecx
je 0x409725
mov eax, dword [esp + 0x5c]
inc eax
mov dword [esp + 0x5c], eax
cmp eax, dword [esp + 0x1c]
jne 0x409115
jmp 0x40973c
push 0xb
push edi
lea ecx, [esp + 0x98]
call fcn.00405cd0
mov dword [esp + 0x34], 1
mov esi, dword [esp + 0x60]
mov edx, dword [0x4241b0]
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fld qword [esp + 0x4c]
fadd qword [0x41f8c0]
fsubp st(1)
call fcn.0040b060
mov edi, dword [esp + 0x74]
mov dword [0x4241b0], eax
fld qword [esp + 0x4c]
fsub qword [0x41f348]
xor eax, eax
push 0x408
push eax
fstp qword [esp + 0x54]
push edi
fldz
fstp qword [esp + 0x28]
mov word [esp + 0x30], ax
call fcn.0040b110
movzx ecx, word [0x425ea4]
add ecx, 0x224ec574
mov word [0x425ea4], cx
push edi
call fcn.0040b18a
xor eax, eax
fldz
mov dword [esi], eax
mov dword [esi + 4], eax
fstp qword [esp + 0x2c]
mov dword [esi + 8], eax
xor edx, edx
mov byte [esi + 0xc], al
mov word [esp + 0x34], dx
movzx eax, word [0x425ea4]
add eax, 0x224ec574
mov word [0x425ea4], ax
push esi
call fcn.0040b18a
mov esi, dword [esp + 0x84]
fldz
xor ecx, ecx
push 0x31e
fstp qword [esp + 0x34]
push ecx
mov word [esp + 0x40], cx
push esi
call fcn.0040b110
movzx edx, word [0x425ea4]
add edx, 0x224ec574
mov word [0x425ea4], dx
push esi
call fcn.0040b18a
mov esi, dword [esp + 0x64]
fldz
xor eax, eax
push 0xaf1
fstp qword [esp + 0x44]
push eax
mov word [esp + 0x50], ax
push esi
call fcn.0040b110
movzx ecx, word [0x425ea4]
add ecx, 0x224ec574
push esi
mov word [0x425ea4], cx
call fcn.0040b18a
push 0x40
lea edx, [esp + 0xe4]
push 0
push edx
call fcn.0040b110
add esp, 0x40
cmp dword [esp + 0x34], 0
je 0x409bb9
mov eax, dword [esp + 0x8c]
push 0x708
push eax
call fcn.00402b70
add esp, 8
cmp dword [esp + 0xa4], 0x200
jbe 0x409b7b
fld qword [0x4241e8]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [0x4241e8]
fld qword [0x4241e8]
mov cx, word [0x424270]
fsubr qword [0x41f8b8]
movsx edx, cx
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fadd qword [esp + 0x64]
fsub qword [0x41f8b0]
fcompp
fnstsw ax
fld qword [esp + 0x64]
fsub st(1)
fstp qword [esp + 0x64]
inc word [0x424270]
test ah, 0x41
jp 0x409908
mov eax, dword [0x4242f4]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fsub dword [esp + 0x2c]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
jmp 0x409924
mov ecx, dword [esp + 0x30]
fstp st(0)
sub ecx, 0x5ef45076
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
fmul dword [esp + 0x14]
fstp dword [esp + 0x14]
push 0x370
call fcn.0040b267
fld dword [esp + 0x30]
fsub qword [0x41f348]
add esp, 4
mov ebx, eax
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fsubr qword [0x41f8a8]
call fcn.0040b060
push ebx
mov dword [0x423128], eax
push 0xeb
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push ebx
call fcn.00402550
push 3
push 0x4242e0
call fcn.00401e10
mov esi, eax
push esi
push ebx
call fcn.0040ba8e
fldz
mov edi, eax
fstp qword [esp + 0x34]
xor eax, eax
mov word [esi], ax
xor edx, edx
mov byte [esi + 2], al
mov word [esp + 0x3c], dx
movzx eax, word [0x425ea4]
add eax, 0x224ec574
mov word [0x425ea4], ax
push esi
call fcn.0040b18a
mov cx, word [0x425050]
movsx edx, cx
mov dword [esp + 0x38], edx
add esp, 0x1c
fild dword [esp + 0x1c]
fmul qword [esp + 0x44]
cmp dword [esp + 0xa8], 0x10
mov eax, dword [esp + 0x94]
fstp qword [esp + 0x44]
jae 0x4099e7
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0xa4]
push edi
push 1
push ecx
push eax
call fcn.0040b948
mov dx, word [esp + 0x48]
movsx eax, dx
mov dword [esp + 0x2c], eax
add esp, 0x10
fild dword [esp + 0x1c]
fld dword [esp + 0x14]
fsub dword [esp + 0x2c]
fcompp
fnstsw ax
fld dword [esp + 0x14]
fadd qword [0x41f348]
fstp dword [esp + 0x14]
test ah, 0x41
jp 0x409a5e
mov cx, word [0x4250f4]
movsx edx, cx
mov ecx, dword [0x423178]
mov eax, 0xc2a1eb2d
sub eax, edx
sub eax, ecx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fadd dword [0x4243a0]
fstp dword [0x4243a0]
inc word [0x4250f4]
push edi
call fcn.0040b76a
add esp, 4
push 0x104
lea eax, [ebx + 0x104]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x15
push 0x4234c0
call fcn.00401e10
push 0x20
push 0x4232e8
mov edi, eax
call fcn.00401e10
mov edx, dword [0x4277e0]
push edx
mov esi, eax
push esi
lea eax, [ebx + 0x104]
push eax
push edi
lea eax, [ebx + 0x208]
push 0x168
push eax
call fcn.0040bcde
fldz
xor eax, eax
fstp qword [esp + 0x44]
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov word [esp + 0x4c], ax
mov dword [esi + 0x1c], eax
movzx ecx, word [0x425ea4]
add ecx, 0x224ec574
mov word [0x425ea4], cx
push esi
call fcn.0040b18a
xor eax, eax
fldz
mov dword [edi], eax
mov dword [edi + 4], eax
fstp qword [esp + 0x48]
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
xor edx, edx
mov byte [edi + 0x14], al
mov word [esp + 0x50], dx
movzx eax, word [0x425ea4]
add eax, 0x224ec574
mov word [0x425ea4], ax
push edi
call fcn.0040b18a
mov ecx, dword [0x4277e0]
push 1
push ecx
call fcn.00402c50
lea eax, [ebx + 0x208]
push eax
push ebx
call fcn.00402990
add esp, 0x40
push 0x370
push 0
push ebx
call fcn.0040b110
push ebx
call fcn.0040b18a
fld dword [esp + 0x24]
fadd qword [esp + 0x5c]
add esp, 0x10
push 0x15f90
fstp qword [0x423388]
call dword [sym.imp.KERNEL32.dll_Sleep]
mov dx, word [esp + 0x3c]
movsx eax, dx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fld dword [esp + 0x2c]
fadd qword [0x424348]
fsub qword [0x41f8a0]
fsubp st(1)
call fcn.0040b060
mov word [esp + 0x3c], ax
fld qword [0x424348]
fadd qword [0x41f348]
fstp qword [0x424348]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [0x4277e0]
push 0
push ecx
call fcn.00402c50
add esp, 8
test eax, eax
jne 0x408f68
mov edx, dword [0x4277e8]
mov eax, dword [0x427324]
push edx
push eax
call fcn.00402990
jmp 0x408f65