Function at 0x401e20
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x4c
mov eax, 1
mov word [esp + 2], ax
push ebx
mov ecx, dword [esp + 0x54]
push esi
mov dword [esp + 0x30], eax
push edi
push ebp
push section..data
push ecx
call fcn.004028a0
mov dword [esp + 0x1c], eax
add esp, 8
test eax, eax
jne 0x401e59
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret
mov eax, dword [esp + 0x64]
push 0x45d008
push eax
call fcn.00432d91
mov dword [esp + 0x20], eax
add esp, 8
test eax, eax
jne 0x401e8a
mov eax, dword [esp + 0x14]
push eax
call fcn.00402b90
add esp, 4
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret
lea eax, [esp + 0x34]
mov ecx, dword [esp + 0x14]
push eax
push 0x100
push ecx
call fcn.00403650
lea ecx, [esp + 0x34]
mov edx, dword [esp + 0x20]
add esp, 0xc
push ecx
push 0x101
push edx
call fcn.00403650
lea ecx, [esp + 0x1e]
mov edx, dword [esp + 0x20]
add esp, 0xc
push ecx
push 0x102
push edx
call fcn.00403650
lea ecx, [esp + 0x44]
mov edx, dword [esp + 0x20]
add esp, 0xc
push ecx
push 0x116
push edx
call fcn.00403650
lea ecx, [esp + 0x1c]
mov edx, dword [esp + 0x20]
add esp, 0xc
push ecx
push 0x106
push edx
call fcn.00403650
mov ecx, dword [esp + 0x20]
add esp, 0xc
push ecx
call fcn.00403480
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x16]
add esp, 4
and eax, 0xffff
push eax
call fcn.00401d70
mov dword [esp + 0x40], eax
add esp, 4
imul eax, dword [esp + 0x34]
add eax, 0x1f
and eax, 0xffffffe7
shr eax, 3
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
push eax
call fcn.00401db0
mov edi, eax
mov dword [esp + 0x48], eax
shr edi, 2
add esp, 4
mov ecx, eax
mov ax, word [0x45d004]
mov word [esp + 0x4c], ax
mov eax, dword [esp + 0x28]
imul eax, dword [esp + 0x24]
add eax, ecx
mov ecx, dword [esp + 0x44]
add eax, 0x36
add ecx, 0x36
mov dword [esp + 0x4e], eax
mov dword [esp + 0x30], ecx
xor eax, eax
mov dword [esp + 0x56], ecx
mov word [esp + 0x54], ax
lea edx, [esp + 0x4c]
mov word [esp + 0x52], ax
mov eax, dword [esp + 0x18]
push eax
push 1
push 0xe
push edx
call fcn.00432b41
add esp, 0x10
test eax, eax
jne 0x401fc4
mov eax, dword [esp + 0x18]
push eax
call fcn.00432973
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call fcn.00402b90
add esp, 4
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret
mov eax, dword [esp + 0x44]
add eax, 0x28
mov dword [esp + 0x2c], eax
push eax
call fcn.004320a4
add esp, 4
mov ebx, eax
test ebx, ebx
jne 0x402002
mov eax, dword [esp + 0x18]
push eax
call fcn.00432973
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call fcn.00402b90
add esp, 4
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret
mov dx, word [esp + 0x3c]
mov dword [ebx], 0x28
mov eax, dword [esp + 0x34]
mov dword [ebx + 4], eax
mov ecx, dword [esp + 0x28]
mov dword [ebx + 8], ecx
xor ecx, ecx
mov word [ebx + 0xc], 1
mov word [ebx + 0xe], dx
mov dword [ebx + 0x10], ecx
mov eax, dword [esp + 0x28]
imul eax, dword [esp + 0x24]
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], ecx
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x20], edi
mov dword [ebx + 0x24], edi
mov esi, dword [ebx]
mov eax, dword [esp + 0x10]
add esi, ebx
and eax, 0xffff
je 0x402060
cmp eax, 1
je 0x402083
cmp eax, 3
je 0x4020a6
jmp 0x402173
mov eax, 0xff
mov byte [esi], al
mov byte [esi + 1], al
mov byte [esi + 2], al
xor eax, eax
mov byte [esi + 3], al
mov byte [esi + 4], al
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
jmp 0x402173
xor eax, eax
mov ecx, 0xff
mov byte [esi], al
mov byte [esi + 1], al
mov byte [esi + 2], al
mov byte [esi + 3], al
mov byte [esi + 4], cl
mov byte [esi + 5], cl
mov byte [esi + 6], cl
mov byte [esi + 7], al
jmp 0x402173
lea eax, [esp + 0x48]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x20]
push eax
mov eax, dword [esp + 0x18]
push ecx
push edx
push 0x140
push eax
call fcn.00403650
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
add esp, 0x14
push ecx
push edx
push eax
push edi
call fcn.00401dd0
add esp, 0x10
sub eax, 0x10
cmp eax, 1
sbb ebp, ebp
neg ebp
dec edi
js 0x402173
lea esi, [esi + edi*4 + 2]
lea ecx, [edi*2]
test ebp, ebp
je 0x40214a
mov edx, dword [esp + 0x20]
xor eax, eax
mov ax, word [edx + ecx]
mov edi, 0xffff
mov edx, eax
shl eax, 8
sub eax, edx
cdq
idiv edi
mov byte [esi], al
xor eax, eax
mov edx, dword [esp + 0x1c]
mov ax, word [edx + ecx]
mov edx, eax
shl eax, 8
sub eax, edx
cdq
idiv edi
mov byte [esi - 1], al
xor eax, eax
mov edx, dword [esp + 0x48]
mov ax, word [edx + ecx]
mov edx, eax
shl eax, 8
sub eax, edx
cdq
idiv edi
mov byte [esi - 2], al
jmp 0x402167
mov eax, dword [esp + 0x20]
mov al, byte [eax + ecx]
mov byte [esi], al
mov edx, dword [esp + 0x1c]
mov al, byte [edx + ecx]
mov byte [esi - 1], al
mov edi, dword [esp + 0x48]
mov dl, byte [edi + ecx]
mov byte [esi - 2], dl
mov byte [esi + 1], 0
sub esi, 4
sub ecx, 2
jns 0x4020fb
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
push eax
push 1
push ecx
push ebx
call fcn.00432b41
add esp, 0x10
test eax, eax
push ebx
jne 0x4021b9
call fcn.0043206c
mov eax, dword [esp + 0x1c]
add esp, 4
push eax
call fcn.00432973
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call fcn.00402b90
add esp, 4
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret
call fcn.0043206c
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call fcn.00403420
add esp, 4
cmp eax, 0x100000
jge 0x402419
inc eax
push eax
call fcn.00402960
mov dword [esp + 0x20], eax
add esp, 4
test eax, eax
jne 0x40220f
mov eax, dword [esp + 0x18]
push eax
call fcn.00432973
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call fcn.00402b90
add esp, 4
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret
mov eax, dword [esp + 0x38]
imul eax, dword [esp + 0x24]
push eax
call fcn.004320a4
mov dword [esp + 0x24], eax
add esp, 4
test eax, eax
jne 0x40225a
mov eax, dword [esp + 0x1c]
push eax
call fcn.00402970
mov eax, dword [esp + 0x1c]
add esp, 4
push eax
call fcn.00432973
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call fcn.00402b90
add esp, 4
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret
mov dword [esp + 0x30], 0
cmp dword [esp + 0x28], 0
jle 0x402386
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
add eax, ecx
cmp eax, dword [esp + 0x28]
jbe 0x402285
mov ebp, dword [esp + 0x28]
sub ebp, ecx
jmp 0x402289
mov ebp, dword [esp + 0x38]
mov eax, ebp
mov edx, dword [esp + 0x1c]
imul eax, dword [esp + 0x40]
push eax
push edx
push 0
push ecx
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004032e0
mov ecx, dword [esp + 0x28]
add esp, 0xc
push eax
push ecx
call fcn.00402da0
add esp, 0x10
cmp eax, 0xffffffff
je 0x40239d
lea ecx, [ebp - 1]
mov edx, dword [esp + 0x20]
imul ecx, dword [esp + 0x24]
add edx, ecx
test ebp, ebp
jle 0x40232a
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x2c], ebp
cmp dword [esp + 0x3c], 0x18
jne 0x402306
xor eax, eax
cmp dword [esp + 0x34], eax
jle 0x40231c
mov cl, byte [eax + ebx + 2]
lea esi, [eax + edx]
lea edi, [eax + ebx]
inc eax
mov byte [esi], cl
mov cl, byte [edi + 1]
mov byte [esi + 1], cl
mov cl, byte [edi]
mov byte [esi + 2], cl
cmp dword [esp + 0x34], eax
jg 0x4022e6
jmp 0x40231c
mov eax, dword [esp + 0x40]
mov edi, edx
mov esi, ebx
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
sub edx, dword [esp + 0x24]
add ebx, dword [esp + 0x40]
dec dword [esp + 0x2c]
jne 0x4022d7
mov eax, dword [esp + 0x28]
push 0
sub eax, ebp
mov ecx, dword [esp + 0x1c]
sub eax, dword [esp + 0x34]
imul eax, dword [esp + 0x28]
add eax, dword [esp + 0x48]
add eax, 0x36
push eax
push ecx
call fcn.00432c4e
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
add esp, 0xc
imul eax, ebp
push ecx
push 1
mov ecx, dword [esp + 0x28]
push eax
push ecx
call fcn.00432b41
add esp, 0x10
test eax, eax
je 0x4023db
mov eax, dword [esp + 0x38]
add dword [esp + 0x30], eax
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x28]
jl 0x40226d
mov eax, dword [esp + 0x20]
push eax
call fcn.0043206c
mov eax, dword [esp + 0x20]
add esp, 4
push eax
jmp 0x402663
mov eax, dword [esp + 0x20]
push eax
call fcn.0043206c
mov eax, dword [esp + 0x20]
add esp, 4
push eax
call fcn.00402970
mov eax, dword [esp + 0x1c]
add esp, 4
push eax
call fcn.00432973
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call fcn.00402b90
add esp, 4
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret
mov eax, dword [esp + 0x20]
push eax
call fcn.0043206c
mov eax, dword [esp + 0x20]
add esp, 4
push eax
call fcn.00402970
mov eax, dword [esp + 0x1c]
add esp, 4
push eax
call fcn.00432973
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call fcn.00402b90
add esp, 4
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x40]
push eax
call fcn.00402960
add esp, 4
mov ebp, eax
test ebp, ebp
jne 0x402458
mov eax, dword [esp + 0x18]
push eax
call fcn.00432973
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call fcn.00402b90
add esp, 4
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret
mov eax, 0x100000
cdq
idiv dword [esp + 0x24]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
imul eax, dword [esp + 0x2c]
push eax
call fcn.004320a4
mov dword [esp + 0x24], eax
add esp, 4
test eax, eax
jne 0x4024ad
push ebp
call fcn.00402970
mov eax, dword [esp + 0x1c]
add esp, 4
push eax
call fcn.00432973
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call fcn.00402b90
add esp, 4
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret
xor ebx, ebx
cmp dword [esp + 0x28], ebx
jle 0x402593
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
sub ecx, dword [esp + 0x1c]
push 0
dec ecx
push ebx
imul ecx, dword [esp + 0x2c]
add edi, ecx
push ebp
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00402c30
add esp, 0x10
test eax, eax
jl 0x402593
cmp dword [esp + 0x3c], 0x18
jne 0x402515
xor eax, eax
cmp dword [esp + 0x34], eax
jle 0x402529
mov cl, byte [eax + ebp + 2]
lea esi, [edi + eax]
lea edx, [eax + ebp]
inc eax
mov byte [esi], cl
mov cl, byte [edx + 1]
mov byte [esi + 1], cl
mov dl, byte [edx]
mov byte [esi + 2], dl
cmp eax, dword [esp + 0x34]
jl 0x4024f5
jmp 0x402529
mov eax, dword [esp + 0x40]
mov esi, ebp
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x2c], eax
jg 0x402588
mov eax, dword [esp + 0x28]
push 0
sub eax, ebx
mov ecx, dword [esp + 0x1c]
dec eax
imul eax, dword [esp + 0x28]
add eax, dword [esp + 0x48]
add eax, 0x36
push eax
push ecx
call fcn.00432c4e
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
imul eax, dword [esp + 0x28]
add esp, 0xc
push ecx
push 1
mov ecx, dword [esp + 0x28]
push eax
push ecx
call fcn.00432b41
add esp, 0x10
test eax, eax
je 0x40261b
mov dword [esp + 0x1c], 0
inc ebx
cmp ebx, dword [esp + 0x28]
jl 0x4024b9
cmp dword [esp + 0x1c], 0
jle 0x402655
mov eax, dword [esp + 0x30]
push 0
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call fcn.00432c4e
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
imul eax, dword [esp + 0x28]
add esp, 0xc
push ecx
push 1
push eax
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x28]
imul eax, dword [esp + 0x30]
add eax, dword [esp + 0x2c]
push eax
call fcn.00432b41
add esp, 0x10
test eax, eax
jne 0x402655
mov eax, dword [esp + 0x20]
push eax
call fcn.0043206c
add esp, 4
push ebp
call fcn.00402970
mov eax, dword [esp + 0x1c]
add esp, 4
push eax
call fcn.00432973
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call fcn.00402b90
add esp, 4
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret
mov eax, dword [esp + 0x20]
push eax
call fcn.0043206c
add esp, 4
push ebp
call fcn.00402970
mov eax, dword [esp + 0x1c]
add esp, 4
push eax
call fcn.00432973
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call fcn.00402b90
add esp, 4
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret
mov eax, dword [esp + 0x20]
push eax
call fcn.0043206c
add esp, 4
push ebp
call fcn.00402970
mov eax, dword [esp + 0x1c]
add esp, 4
push eax
call fcn.00432973
mov eax, dword [esp + 0x18]
add esp, 4
push eax
call fcn.00402b90
add esp, 4
mov eax, 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x4c
ret