Function at 0x42efe0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa4
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x1fdc]
push esi
mov edx, dword [ebx + 0x1fe0]
mov ecx, dword [ebx + 0x1fd8]
push edi
test ecx, ecx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x98], edx
je 0x42f01d
fld qword [ecx + 8]
ftst
fnstsw ax
fstp st(0)
sahf
jne 0x42f029
pop edi
mov eax, 0x92
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld xword [ebx + 0x2128]
fmul qword [0x46f394]
fld xword [ebx + 0x213c]
fdivp st(1)
mov dword [ebp - 0x90], ecx
sub esp, 8
fstp qword [esp]
call fcn.00461674
add esp, 8
sub esp, 8
fnstcw word [esp + 4]
fldcw word [0x46f2c4]
fistp dword [esp]
fldcw word [esp + 4]
pop esi
add esp, 4
cmp esi, 0x100
jl 0x42f076
mov esi, 0x100
lea ecx, [ebp - 0x48]
push 0x46f39c
push ecx
call fcn.004605d0
mov edx, dword [ebp + 0xc]
mov cl, byte [edx + reloc.USER32.DLL_GetClassLongA]
mov byte [ebp - 8], cl
lea edx, [ebp - 8]
lea ecx, [ebp - 0x48]
mov byte [ebp - 7], 0x20
mov byte [ebp - 6], 0
push dword [0x46f3c0]
push dword [0x46f3bc]
push edx
push dword [0x46f3c0]
push dword [0x46f3bc]
push edx
lea edx, [ebp - 0x88]
push dword [0x46f3c0]
push dword [0x46f3bc]
push ecx
push edx
call fcn.00460790
lea ecx, [ebp - 0x88]
push ecx
call fcn.00460634
lea ecx, [esi + 3]
mul ecx
mov dword [ebp - 0xa0], eax
add esp, 0x34
push eax
push 0x40
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
mov edi, eax
test eax, eax
jne 0x42f106
pop edi
mov eax, 0xffffff9f
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x46f3c4
lea edx, [ebp - 0x88]
mov dword [ebp - 0x8c], esi
push edx
call fcn.004605d0
lea ecx, [ebp - 0x88]
push ecx
call fcn.00460634
add esp, 4
lea edx, [ebp - 0x88]
push eax
mov esi, eax
push edx
push edi
call fcn.00460310
add esp, 0x14
mov ebx, 1
cmp dword [ebp - 0x8c], 1
jle 0x42f1be
mov ecx, dword [ebp - 0x98]
lea edx, [ebp - 8]
push dword [ecx + ebx*8 + 4]
push dword [ecx + ebx*8]
push edx
mov ecx, dword [ebp - 0x94]
push dword [ecx + ebx*8 + 4]
push dword [ecx + ebx*8]
lea ecx, [ebp - 0x48]
push edx
mov edx, dword [ebp - 0x90]
push dword [edx + ebx*8 + 4]
push dword [edx + ebx*8]
lea edx, [ebp - 0x88]
push ecx
push edx
call fcn.00460790
lea ecx, [ebp - 0x88]
push ecx
call fcn.00460634
lea edx, [ebp - 0x88]
lea ecx, [esi + edi]
push eax
push edx
mov dword [ebp - 0xa0], eax
push ecx
call fcn.00460310
inc ebx
add esi, dword [ebp - 0xa0]
add esp, 0x38
cmp ebx, dword [ebp - 0x8c]
jl 0x42f14d
push 0x46f3f4
lea edx, [ebp - 0x88]
push edx
call fcn.004605d0
lea ecx, [ebp - 0x88]
push ecx
call fcn.00460634
lea edx, [ebp - 0x88]
lea ecx, [edi + esi]
push eax
push edx
mov dword [ebp - 0xa0], eax
push ecx
call fcn.00460310
lea edx, [ebp - 0xa0]
push 0
push edx
add esi, dword [ebp - 0xa0]
push esi
push edi
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
mov dword [ebp - 0x9c], eax
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov ebx, eax
push edi
call dword [sym.imp.KERNEL32.DLL_GlobalHandle]
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalUnlock]
push edi
call dword [sym.imp.KERNEL32.DLL_GlobalHandle]
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalFree]
add esp, 0x18
cmp dword [ebp - 0x9c], 0
je 0x42f24d
cmp dword [ebp - 0xa0], esi
je 0x42f259
pop edi
mov eax, 0x96
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
cmp ebx, 1
sbb eax, eax
and eax, 0x98
pop esi
pop ebx
mov esp, ebp
pop ebp
ret