Function at 0x423f40
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xdc
mov dword [esp], 0x2000
mov eax, dword [esp + 0xfc]
mov edx, dword [esp + 0x100]
mov ebx, dword [esp + 0x118]
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0x104]
mov dword [esp + 0x2c], edx
mov edi, dword [esp + 0x108]
call fcn.00447900
mov dword [esp + 0x4c], 0
mov dword [esp + 0x88], 0
mov ebp, eax
mov eax, ebx
mov dword [esp + 0x8c], 0
and eax, 1
mov dword [esp + 0x68], eax
mov eax, ebx
mov dword [esp + 0x90], 0
and eax, 4
mov dword [esp + 0x50], eax
mov dword [esp + 0x94], 0
test bl, 8
jne 0x4248c0
and ebx, 2
mov eax, dword [0x47602c]
jne 0x4242a0
test eax, eax
je 0x424838
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
add ecx, esi
adc ebx, edi
mov eax, dword [0x475f50]
test eax, eax
je 0x424027
mov dword [esp], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
call sub.cygwin1.dll_strlen
mov ecx, dword [esp + 0xf0]
mov ebx, dword [esp + 0x34]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 8], edi
mov dword [esp], eax
call fcn.00421970
mov dword [esp], eax
mov esi, eax
call fcn.004219f0
mov byte [esp + 0x6e], al
mov eax, dword [0x47607c]
or eax, dword [0x476078]
jne 0x424982
test esi, esi
je 0x42484e
call fcn.00421ac0
mov edx, dword [0x47607c]
mov edi, eax
mov eax, dword [0x476078]
mov ecx, eax
or ecx, edx
je 0x424099
mov ecx, 0x1fff
mov dword [esp + 0x54], eax
cmp ecx, eax
mov ecx, 0
sbb ecx, edx
jge 0x4240a1
mov dword [esp + 0x54], 0x2000
movzx ecx, byte [esp + 0x68]
mov edx, dword [esp + 0x2c]
xor ecx, 1
sar edx, 0x1f
cmp edx, dword [esp + 0x28]
sbb edx, dword [esp + 0x2c]
mov byte [esp + 0x6f], cl
test edx, edx
js 0x4240c8
test cl, cl
je 0x424a6d
mov eax, dword [esp + 0x54]
mov dword [esp + 0x40], 0
fldz
mov dword [esp + 0x44], 0
mov dword [esp + 0x58], eax
sar eax, 0x1f
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x5c], eax
mov dword [esp + 0x48], ebp
mov dword [esp + 0x30], edi
fstp qword [esp + 0x60]
mov eax, dword [esp + 0x50]
fld qword [0x476040]
test eax, eax
je 0x424440
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, ebx
or edx, ecx
je 0x424690
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x5c]
cmp ecx, eax
mov edi, ebx
mov ebx, ecx
sbb edi, edx
cmovge ebx, eax
cmp byte [esp + 0x6e], 0
je 0x4242d8
fstp st(0)
call sub.cygwin1.dll___errno
fldz
fld qword [0x476040]
mov dword [eax], 0
fucompi st(1)
fstp st(0)
jp 0x4247e0
jne 0x4247e0
jmp 0x424188
fstp st(0)
fstp st(0)
lea esi, [esi]
fld qword [str.ffffff]
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0xf4]
mov dword [esp + 8], ebx
fstp qword [esp + 0xc]
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.00401800
mov ebx, eax
test eax, eax
jns 0x4242f9
call sub.cygwin1.dll___errno
cmp dword [eax], 0x74
je 0x424870
mov edi, dword [esp + 0x30]
mov ebx, 0xffffffff
test esi, esi
je 0x4241e6
mov dword [esp], edi
call fcn.00421c90
mov dword [esp], esi
fstp qword [esp + 4]
call fcn.00421a80
test edi, edi
je 0x42420e
mov eax, dword [esp + 0x114]
test eax, eax
je 0x424206
mov dword [esp], edi
call fcn.00421c90
mov eax, dword [esp + 0x114]
fstp qword [eax]
mov dword [esp], edi
call fcn.00421b80
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x42423f
lea eax, [esp + 0x98]
mov dword [esp], eax
call sub.cygz.dll_inflateEnd
test ebx, ebx
js 0x424233
xor ebx, ebx
test eax, eax
jne 0x424a40
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.004376c0
mov ecx, dword [esp + 0x10c]
test ecx, ecx
je 0x42425e
mov esi, dword [esp + 0x10c]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
add dword [esi], eax
adc dword [esi + 4], edx
mov edx, dword [esp + 0x110]
test edx, edx
je 0x424283
mov esi, dword [esp + 0x110]
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
add dword [esi], eax
adc dword [esi + 4], edx
mov dword [esp], ebp
call fcn.004376c0
add esp, 0xdc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], edi
test eax, eax
je 0x424838
mov edx, edi
or edx, esi
je 0x423fe8
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
xor esi, esi
xor edi, edi
jmp 0x423ff4
mov eax, dword [esp + 0x48]
mov dword [esp + 8], ebx
fstp qword [esp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
call fcn.00401800
mov ebx, eax
test ebx, ebx
jle 0x424a96
test esi, esi
jne 0x42431d
mov eax, dword [0x476078]
or eax, dword [0x47607c]
jne 0x42431d
mov ebp, dword [esp + 0x114]
test ebp, ebp
je 0x42433b
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00421be0
fstp st(0)
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00421c90
fstp qword [esp + 0x60]
mov ebp, ebx
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x70], ebx
sar ebp, 0x1f
add dword [esp + 0x38], ebx
mov dword [esp + 0x74], ebp
adc dword [esp + 0x3c], ebp
test edi, edi
jne 0x424570
mov eax, dword [esp + 0x11c]
or eax, dword [esp + 0xf8]
je 0x4243a4
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov ecx, dword [esp + 0x48]
mov dword [esp + 8], eax
lea eax, [esp + 0x88]
mov edx, dword [esp + 0x11c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf8]
call fcn.00423c60
test eax, eax
js 0x424a55
mov ebp, dword [esp + 0x50]
test ebp, ebp
je 0x4243ce
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
sub dword [esp + 0x40], edi
mov edi, dword [esp + 0x40]
sbb dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x44]
mov eax, ebp
or eax, edi
je 0x4249c0
mov eax, dword [0x47607c]
or eax, dword [0x476078]
jne 0x424480
test esi, esi
je 0x424408
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00421c90
mov eax, ebx
mov dword [esp + 4], ebx
sar eax, 0x1f
mov dword [esp], esi
mov dword [esp + 8], eax
fstp qword [esp + 0xc]
call fcn.00421a00
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
cmp eax, edi
mov eax, edx
sbb eax, dword [esp + 0x2c]
jl 0x424105
cmp byte [esp + 0x6f], 0
jne 0x424105
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x30]
jmp 0x4241ce
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x54]
test eax, eax
je 0x424144
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov ecx, ebp
sbb edx, dword [esp + 0x3c]
cmp edi, eax
sbb ecx, edx
mov ebx, eax
cmovl ebx, edi
jmp 0x424144
mov edi, dword [esp + 0x30]
mov dword [esp], edi
call fcn.00421c90
fld qword [0x4783b0]
mov eax, ebx
cdq
add eax, dword [0x4783a8]
adc edx, dword [0x4783ac]
mov dword [esp + 0x70], eax
fsubp st(1)
mov dword [esp + 0x74], edx
fild qword [esp + 0x70]
fild qword [0x476078]
mov dword [0x4783a8], eax
mov dword [0x4783ac], edx
fdivp st(1)
fcomi st(1)
jbe 0x424538
fsubrp st(1)
fadd qword [0x4783b8]
fld qword [0x463640]
fcompi st(1)
fstp qword [esp + 0x70]
ja 0x4243df
mov dword [esp], edi
call fcn.00421c90
fstp qword [esp + 0x78]
fld qword [esp + 0x70]
fstp qword [esp]
call fcn.004302c0
mov dword [esp], edi
call fcn.00421be0
fsub qword [esp + 0x78]
fld qword [esp + 0x70]
fsubrp st(1)
fld dword [0x463648]
fld st(0)
fxch st(2)
fcomi st(2)
fstp st(2)
jbe 0x4249a0
fstp st(1)
jmp 0x42452a
fstp st(1)
fstp qword [0x4783b8]
jmp 0x42453c
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x30]
mov dword [0x4783a8], 0
mov dword [esp], eax
mov dword [0x4783ac], 0
call fcn.00421c90
fstp qword [0x4783b0]
jmp 0x4243df
mov ecx, dword [esp + 0x11c]
test ecx, ecx
je 0x4245be
mov eax, dword [esp + 0x11c]
mov dword [esp + 8], ebx
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call sub.cygwin1.dll_fwrite
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
call sub.cygwin1.dll_fflush
mov eax, dword [esp + 0x11c]
test byte [eax + 0xc], 0x40
jne 0x424a84
mov ebp, dword [esp + 0x48]
lea eax, [esp + 0x98]
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x48], eax
mov edi, dword [esp + 0x30]
mov dword [esp + 0x98], ebp
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], 0
mov dword [esp + 0xa8], 0x8000
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call sub.cygz.dll_inflate
cmp eax, 0xfffffffd
je 0x424890
cmp eax, 2
je 0x424890
cmp eax, 0xfffffffc
je 0x4248a8
mov edx, dword [esp + 0xf8]
mov eax, dword [esp + 0xa8]
test edx, edx
je 0x424677
lea ecx, [esp + 0x90]
mov edx, 0x8000
sub edx, eax
mov dword [esp + 8], ecx
lea ecx, [esp + 0x88]
mov eax, dword [esp + 0xf8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp], edx
xor edx, edx
call fcn.00423c60
test eax, eax
js 0x424a5d
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x4245df
mov dword [esp + 0x48], ebp
mov dword [esp + 0x30], edi
jmp 0x4243a4
mov eax, dword [esp + 0xf4]
mov dword [esp + 0xc], 0x1000
mov dword [esp + 8], pe_nt_image_headers32
mov dword [esp + 4], 0x423b30
mov dword [esp], eax
fstp qword [esp + 0x40]
call fcn.00423da0
mov ebx, eax
test eax, eax
je 0x424a64
mov eax, dword [esp + 0x11c]
fld qword [esp + 0x40]
test eax, eax
je 0x424701
fstp st(0)
mov dword [esp], ebx
call sub.cygwin1.dll_strlen
mov ecx, dword [esp + 0x11c]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp], ebx
call sub.cygwin1.dll_fwrite
fld qword [esp + 0x40]
lea eax, [esp + 0x84]
mov dword [esp + 8], 0x10
mov dword [esp + 4], eax
mov dword [esp], ebx
fstp qword [esp + 0x78]
call fcn.00446e90
mov dword [esp], ebx
mov ebp, eax
mov dword [esp + 0x70], eax
sar ebp, 0x1f
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebp
call fcn.004376c0
test ebp, ebp
js 0x424a64
mov eax, dword [esp + 0x70]
mov edx, ebp
fld qword [esp + 0x78]
or edx, eax
jne 0x424129
fstp st(0)
mov eax, dword [esp + 0xf4]
mov dword [esp + 0xc], 0x1000
mov ebx, 0xffffffff
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x30]
mov dword [esp + 8], pe_nt_image_headers32
mov dword [esp + 4], 0x423b30
mov dword [esp], eax
call fcn.00423da0
mov edx, eax
test eax, eax
je 0x4241ce
mov eax, dword [esp + 0x11c]
test eax, eax
je 0x4247d1
mov dword [esp], edx
mov dword [esp + 0x28], edx
call sub.cygwin1.dll_strlen
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x11c]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.cygwin1.dll_fwrite
mov edx, dword [esp + 0x28]
mov dword [esp], edx
xor ebx, ebx
call fcn.004376c0
jmp 0x4241ce
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00421c90
fld qword [esp + 0x60]
fsubp st(1)
fld qword [0x476040]
fld qword [str.ffffff]
fadd st(2)
fcompi st(1)
jbe 0x424180
fsubrp st(1)
fldz
fcompi st(1)
jb 0x42418e
fstp st(0)
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x30]
mov ebx, 0xffffffff
call sub.cygwin1.dll___errno
mov dword [eax], 0x74
jmp 0x4241ce
mov eax, dword [0x47607c]
or eax, dword [0x476078]
mov byte [esp + 0x6e], 0
jne 0x424980
mov eax, dword [esp + 0x114]
xor esi, esi
test eax, eax
jne 0x42406d
mov dword [esp + 0x54], 0x2000
xor edi, edi
jmp 0x4240a1
test esi, esi
je 0x424aab
mov eax, dword [esp + 0x30]
xor ebx, ebx
mov dword [esp], eax
call fcn.00421be0
fstp st(0)
jmp 0x4243ce
call sub.cygwin1.dll___errno
mov ebx, 0xffffffff
mov dword [eax], 0x16
jmp 0x4241ce
call sub.cygwin1.dll___errno
mov ebx, 0xffffffff
mov dword [eax], 0xc
jmp 0x4241ce
mov dword [esp], 0x8000
call fcn.00447900
mov dword [esp + 0xc], 0x38
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x98]
mov dword [esp + 8], str.1.2.12
mov dword [esp + 4], 0x2f
mov dword [esp], eax
mov dword [esp + 0xb8], 0x423b10
mov dword [esp + 0xbc], 0x423b00
mov dword [esp + 0xc0], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
call sub.cygz.dll_inflateInit2_
mov edx, dword [esp + 0x30]
test eax, eax
je 0x423fd2
mov dword [esp], edx
mov ebx, 0xc
mov dword [esp + 0x28], eax
call fcn.004376c0
mov eax, dword [esp + 0x28]
cmp eax, 0xfffffffc
mov eax, 0x16
cmovne ebx, eax
call sub.cygwin1.dll___errno
mov dword [esp + 0x38], 0
mov dword [eax], ebx
mov ebx, 0xffffffff
mov dword [esp + 0x3c], 0
jmp 0x42423f
xor esi, esi
xor edx, edx
xor eax, eax
mov dword [eax + 0x4783a8], edx
add eax, 4
cmp eax, 0x18
jb 0x424986
jmp 0x42406d
fstp st(0)
fld dword [0x46364c]
fld st(0)
fcompi st(2)
ja 0x424528
fstp st(0)
fstp qword [0x4783b8]
jmp 0x42453c
mov eax, dword [esp + 0xf4]
mov dword [esp + 0xc], 0x1000
mov dword [esp + 8], pe_nt_image_headers32
mov dword [esp + 4], 0x423b30
mov dword [esp], eax
call fcn.00423da0
mov edx, eax
test eax, eax
je 0x424a64
mov edi, dword [esp + 0x11c]
test edi, edi
je 0x424a2b
mov dword [esp], eax
mov dword [esp + 0x70], eax
call sub.cygwin1.dll_strlen
mov edx, dword [esp + 0x70]
mov edi, dword [esp + 0x11c]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], edi
call sub.cygwin1.dll_fwrite
mov edx, dword [esp + 0x70]
mov dword [esp], edx
call fcn.004376c0
jmp 0x4243ce
call sub.cygwin1.dll___errno
mov ebx, 0xffffffff
mov dword [eax], 0x16
jmp 0x424233
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x30]
mov ebx, eax
jmp 0x4241ce
mov ebp, dword [esp + 0x48]
jmp 0x4241c5
mov dword [esp + 0x38], 0
xor ebx, ebx
mov dword [esp + 0x3c], 0
jmp 0x4241ce
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x30]
mov ebx, 0xfffffffd
jmp 0x4241ce
mov eax, 0xffffffff
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x30]
cmovs ebx, eax
jmp 0x4241ce
mov eax, dword [0x476078]
or eax, dword [0x47607c]
jne 0x424878
xor ebx, ebx
cmp dword [esp + 0x114], 0
jne 0x424878
jmp 0x424408