Function at 0x402630
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x14
cmp dword [0x4173ac], 0
mov dword [esp], 0
jne 0x402649
xor eax, eax
add esp, 0x14
ret
movzx eax, word [0x4173bc]
inc eax
push esi
shl eax, 5
push eax
mov esi, 1
mov dword [0x417414], 0
call fcn.004010a0
mov ecx, dword [0x4173ac]
add esp, 4
mov dword [0x415f44], eax
cmp ecx, dword [0x416f54]
jbe 0x402696
push 0xffffffffffffffff
push 0x415f00
mov dword [0x417404], 0x3b
call fcn.00403870
mov edx, dword [0x416f48]
add edx, ecx
movzx ecx, word [0x4173bc]
push ebx
push ebp
push edi
mov dword [0x415f40], edx
test ecx, ecx
jbe 0x402915
xor esi, esi
mov dword [esp + 0x18], ecx
lea esp, [esp]
call fcn.00401e00
cmp byte [0x415ecf], 0
je 0x4026f4
mov ecx, eax
mov edx, eax
shr edx, 0x10
and ecx, 0xff0000
or ecx, edx
mov edx, eax
and edx, 0xff00
shl eax, 0x10
or edx, eax
shr ecx, 8
shl edx, 8
or ecx, edx
mov eax, ecx
mov ecx, dword [0x415f44]
mov dword [esi + ecx], eax
call fcn.00401e00
cmp byte [0x415ecf], 0
je 0x402731
mov edx, eax
mov ecx, eax
shr ecx, 0x10
and edx, 0xff0000
or edx, ecx
mov ecx, eax
and ecx, 0xff00
shl eax, 0x10
or ecx, eax
shr edx, 8
shl ecx, 8
or edx, ecx
mov eax, edx
mov edx, dword [0x415f44]
mov dword [esi + edx + 4], eax
call fcn.00401e00
cmp byte [0x415ecf], 0
je 0x40276e
mov ecx, eax
mov edx, eax
shr edx, 0x10
and ecx, 0xff0000
or ecx, edx
mov edx, eax
shl edx, 0x10
and eax, 0xff00
or edx, eax
shr ecx, 8
shl edx, 8
or ecx, edx
mov eax, ecx
mov ecx, dword [0x415f44]
mov dword [esi + ecx + 8], eax
call fcn.00401e00
cmp byte [0x415ecf], 0
je 0x4027ab
mov edx, eax
mov ecx, eax
shr ecx, 0x10
and edx, 0xff0000
or edx, ecx
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
shr edx, 8
shl ecx, 8
or edx, ecx
mov eax, edx
mov edx, dword [0x415f44]
mov dword [esi + edx + 0xc], eax
call fcn.00401e00
cmp byte [0x415ecf], 0
je 0x4027e8
mov ecx, eax
mov edx, eax
shr edx, 0x10
and ecx, 0xff0000
or ecx, edx
mov edx, eax
shl edx, 0x10
and eax, 0xff00
or edx, eax
shr ecx, 8
shl edx, 8
or ecx, edx
mov eax, ecx
mov ecx, dword [0x415f44]
mov dword [esi + ecx + 0x10], eax
call fcn.00401e00
cmp byte [0x415ecf], 0
je 0x402825
mov edx, eax
mov ecx, eax
shr ecx, 0x10
and edx, 0xff0000
or edx, ecx
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
shr edx, 8
shl ecx, 8
or edx, ecx
mov eax, edx
mov edx, dword [0x415f44]
mov dword [esi + edx + 0x14], eax
call fcn.00401e00
cmp byte [0x415ecf], 0
je 0x402862
mov ecx, eax
mov edx, eax
shr edx, 0x10
and ecx, 0xff0000
or ecx, edx
mov edx, eax
shl edx, 0x10
and eax, 0xff00
or edx, eax
shr ecx, 8
shl edx, 8
or ecx, edx
mov eax, ecx
mov ecx, dword [0x415f44]
mov dword [esi + ecx + 0x18], eax
call fcn.00401e00
cmp byte [0x415ecf], 0
mov ecx, eax
je 0x4028a0
shr eax, 0x10
mov edx, ecx
and edx, 0xff0000
or edx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr edx, 8
shl eax, 8
or edx, eax
mov ecx, edx
mov eax, dword [0x415f44]
cmp dword [esi + eax + 4], 0
mov dword [esi + eax + 0x1c], ecx
jne 0x4028ef
mov ebp, dword [esi + eax + 0xc]
mov edx, dword [esi + eax + 8]
cmp ebp, edx
jne 0x4028ef
mov ecx, dword [esi + eax + 0x14]
mov edi, dword [esi + eax + 0x10]
cmp ecx, edi
jbe 0x4028ef
mov ebx, dword [esi + eax + 0x18]
and ebx, 7
cmp bl, 6
jne 0x4028ef
add edx, edi
lea ebx, [edi + ebp]
sub ecx, edi
mov dword [esi + eax + 0xc], ebx
mov dword [esi + eax + 8], edx
mov dword [esi + eax + 0x14], ecx
mov dword [esi + eax + 0x10], 0
cmp dword [esi + eax + 0x14], 0
je 0x402907
test byte [esi + eax + 0x18], 1
je 0x402907
mov ecx, dword [esi + eax + 0x10]
add dword [0x417414], ecx
add esi, 0x20
sub dword [esp + 0x18], 1
jne 0x4026c0
cmp dword [0x417414], 0
jne 0x402932
pop edi
pop ebp
pop ebx
mov dword [0x417404], 0x3b
xor eax, eax
pop esi
add esp, 0x14
ret
test byte [0x415ef4], 1
je 0x40299f
mov edx, dword [0x415ef0]
push 0x412738
push edx
call fcn.004039e5
add esp, 8
mov dword [0x415ef8], eax
test eax, eax
jne 0x40299a
mov eax, dword [0x415ef0]
mov esi, eax
test eax, eax
je 0x402971
cmp byte [eax], 0
je 0x402971
push eax
call fcn.00403779
add esp, 4
push str._Fatal_Error_while_accessing_file_n
call fcn.004037a9
push esi
push str.__Error:_cannot_create_file__s_n
call fcn.004037a9
push str._ElfDwT_terminated._n
call fcn.004037a9
add esp, 0x10
push 3
call fcn.004036e1
mov eax, dword [0x415f44]
mov edi, dword [0x417550]
mov ebp, dword [0x417558]
mov ecx, edi
and ecx, 0xf
sub ecx, dword [0x417554]
mov dword [esp + 0x1c], 0
add ecx, ebp
mov dword [esp + 0x20], ecx
xor ecx, ecx
cmp cx, word [0x4173bc]
jae 0x402ce5
mov dword [esp + 0x14], ecx
jmp 0x4029e0
test byte [ecx + eax + 0x18], 1
mov edx, dword [ecx + eax + 0xc]
je 0x402c58
cmp edx, dword [0x417554]
jb 0x402be5
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
add ecx, edx
cmp ecx, dword [esi + eax + 0x10]
jae 0x402be5
mov ecx, esi
mov eax, dword [ecx + eax + 4]
cmp eax, dword [0x416f54]
ja 0x402ccf
cmp dword [0x417404], 0
mov ecx, dword [0x416f48]
lea esi, [ecx + eax]
mov dword [0x415f40], esi
jne 0x402ce5
and edi, 0xf
xor eax, eax
sub edi, 1
mov ecx, edx
je 0x402b52
sub edi, 1
mov ebx, dword [0x41755c]
je 0x402ac3
xor edi, edi
cmp edx, ebp
ja 0x402a7f
lea ebx, [edx + edx]
sub esi, ebx
mov ebx, dword [0x417554]
add esi, ebx
mov ebx, dword [0x41755c]
cmp ecx, ebx
je 0x402a78
add edi, dword [esi + ecx]
add ecx, 4
cmp ecx, ebp
jbe 0x402a71
mov esi, ebx
sub esi, edx
add esi, dword [0x415f40]
neg edi
cmp dword [esi], edi
je 0x402aaf
push str.Updated
push 0x417450
call fcn.004033c4
mov dword [esi], edi
mov ebx, dword [0x41755c]
mov ebp, dword [0x417558]
add esp, 8
mov edx, dword [0x417554]
push edi
push ebx
push ebp
push edx
push str.Signature_over_Range_32___0x_08X___0x_08X_:__0x_08X__0x_08X
jmp 0x402bc7
xor edi, edi
mov dword [esp + 0x18], edi
cmp edx, ebp
ja 0x402af8
lea edi, [edx + edx]
sub esi, edi
mov edi, dword [0x417554]
add edi, esi
mov si, word [esp + 0x18]
nop
cmp ecx, ebx
je 0x402aed
add si, word [edi + ecx]
mov word [esp + 0x18], si
add ecx, 2
cmp ecx, ebp
jbe 0x402ae0
mov edi, dword [esp + 0x18]
neg edi
mov esi, ebx
movzx ecx, di
sub esi, edx
add esi, dword [0x415f40]
mov di, cx
mov dword [esp + 0x18], ecx
cmp word [esi], di
je 0x402b34
push str.Updated
push 0x417450
call fcn.004033c4
mov word [esi], di
mov ebx, dword [0x41755c]
mov ebp, dword [0x417558]
add esp, 8
mov ecx, dword [0x417554]
movzx edx, di
push edx
push ebx
push ebp
push ecx
push str.Signature_over_Range_16___0x_08X___0x_08X_:__0x_08X__0x_04X
lea edx, [eax + 0x417450]
push edx
jmp 0x402bce
mov edi, dword [0x41755c]
xor bl, bl
cmp edx, ebp
ja 0x402b85
lea edi, [edx + edx]
sub esi, edi
mov edi, dword [0x417554]
add esi, edi
mov edi, dword [0x41755c]
mov dword [esp + 0x18], esi
cmp ecx, edi
je 0x402b80
mov esi, dword [esp + 0x18]
add bl, byte [esi + ecx]
inc ecx
cmp ecx, ebp
jbe 0x402b75
mov esi, edi
sub esi, edx
add esi, dword [0x415f40]
neg bl
cmp byte [esi], bl
je 0x402bb5
push str.Updated
push 0x417450
call fcn.004033c4
mov byte [esi], bl
mov edi, dword [0x41755c]
mov ebp, dword [0x417558]
add esp, 8
mov edx, dword [0x417554]
movzx ecx, bl
push ecx
push edi
push ebp
push edx
push str.Signature_over_Range_8___0x_08X___0x_08X_:__0x_08X__0x_08X
lea eax, [eax + 0x417450]
push eax
call fcn.004033c4
mov eax, dword [0x415f44]
mov ebp, dword [0x417558]
add esp, 0x18
inc dword [esp + 0x10]
test byte [0x415ef4], 1
je 0x402c45
mov esi, dword [0x415ef8]
test esi, esi
je 0x402c45
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + eax + 4]
cmp ecx, dword [0x416f54]
ja 0x402ccf
mov edx, dword [edx + eax + 0x10]
mov edi, dword [0x416f48]
push esi
push edx
add ecx, edi
push 1
push ecx
mov dword [0x415f40], ecx
call fcn.00403b5e
mov eax, dword [0x415ef8]
push eax
call fcn.00403be0
add esp, 0x14
test eax, eax
jne 0x402c7a
mov eax, dword [0x415f44]
mov ebp, dword [0x417558]
cmp dword [0x417404], 0
jne 0x402ce5
mov edi, dword [0x417550]
mov ecx, dword [esp + 0x1c]
movzx edx, word [0x4173bc]
add dword [esp + 0x14], 0x20
inc ecx
mov dword [esp + 0x1c], ecx
cmp ecx, edx
jae 0x402ce5
mov ecx, dword [esp + 0x14]
jmp 0x4029e0
call fcn.00402d20
mov eax, dword [0x415ef8]
push eax
call fcn.00403c8b
mov eax, dword [0x415ef0]
add esp, 4
mov esi, eax
test eax, eax
je 0x402ca6
cmp byte [eax], 0
je 0x402ca6
push eax
call fcn.00403779
add esp, 4
push str._Fatal_Error_while_writing_file_n
call fcn.004037a9
push esi
push str.__Error:_I_O_error_on_file__s_n
call fcn.004037a9
push str._ElfDwT_terminated._n
call fcn.004037a9
add esp, 0x10
push 3
call fcn.004036e1
push 0xffffffffffffffff
push 0x415f00
mov dword [0x417404], 0x3b
call fcn.00403870
test byte [0x415ef4], 1
je 0x402d0a
mov eax, dword [0x415ef8]
test eax, eax
je 0x402d0a
push eax
call fcn.00403c8b
add esp, 4
mov dword [0x415ef8], 0
mov eax, dword [esp + 0x10]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x14
ret