Function at 0x421f60
Capabilities:
Write file on windows

Disassembly:
push edi
push esi
sub esp, 0x7c4
mov eax, dword [esp + 0x7d0]
mov dword [esp + 0x7c0], eax
mov eax, dword [0x495ec0]
mov cx, word [0x4993f4]
mov dx, cx
imul eax, edx
mov cx, word [0x49a41a]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x49a41a], cx
mov eax, dword [esp + 0x7c0]
mov ecx, eax
call fcn.00441cb0
cmp eax, 0x806a
jbe 0x4226c1
mov eax, dword [0x49367c]
add eax, 0x6041c898
mov dword [0x49367c], eax
mov eax, dword [0x491ff4]
add eax, 0x6bbd8e66
mov dword [0x491ff4], eax
mov cx, word [0x498010]
mov ax, cx
xor eax, 0x2e15
mov cx, ax
mov word [0x498010], cx
mov cx, word [0x498c84]
mov ax, cx
add eax, 0xfaa9daf3
mov cx, ax
mov word [0x498c84], cx
mov eax, esp
lea edx, [esp + 0x62e]
mov dword [eax], edx
call fcn.004485d0
mov dword [esp + 0x628], eax
mov eax, dword [0x49573c]
imul eax, eax, 0x890cba48
cmp eax, 0xa4fd8f3a
je 0x42208c
mov eax, 0x63471da5
mov cx, word [0x499336]
movsx edx, cx
imul edx, edx, 0xce14d5ee
cmp eax, edx
jle 0x422087
mov eax, dword [0x497448]
mov ecx, eax
inc ecx
mov dword [0x497448], ecx
mov dx, word [0x49a3f0]
mov cx, dx
mov esi, ecx
inc esi
mov dx, si
mov word [0x49a3f0], dx
add eax, ecx
or eax, 0x84cf
mov dx, ax
mov word [0x49ab3e], dx
jmp 0x42208c
mov eax, 0x3cf5acf8
mov dword [esp + 0x48], eax
call fcn.0044f240
movzx ecx, al
and ecx, 3
add ecx, 7
mov edx, dword [esp + 0x628]
lea edx, [esp + edx + 0x62e]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], edx
call fcn.004456f0
mov di, word [0x499c6e]
movsx ecx, di
mov edx, dword [0x493b18]
lea ecx, [ecx + edx + 0x387f3f25]
mov edx, dword [0x490cf8]
or edx, ecx
mov dword [0x490cf8], edx
mov ecx, esp
mov dword [ecx + 4], 5
mov dword [ecx], 0x403f
call fcn.00448730
mov dword [esp + 0x7bc], eax
mov eax, dword [0x4956c4]
inc eax
mov dword [0x4956c4], eax
or eax, 0x62f4a586
mov ecx, dword [esp + 0x48]
cmp ecx, eax
jl 0x422136
mov ax, word [0x497cda]
mov cx, ax
add ecx, 0xfda9e97b
mov ax, cx
mov word [0x497cda], ax
jmp 0x422145
mov eax, dword [0x495d20]
add eax, 0xecd5699f
mov dword [0x495d20], eax
mov eax, dword [esp + 0x7bc]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x62e]
mov dword [ecx], eax
mov dword [esp + 0x44], eax
call fcn.00455c80
mov dx, word [0x49a58c]
movsx ecx, dx
imul ecx, ecx, 0xd097f7c1
xor ecx, 0x35666697
mov esi, dword [0x4941ac]
sub esi, ecx
mov dword [0x4941ac], esi
mov ecx, esp
mov dword [ecx + 4], 3
mov dword [ecx], 0x43c2
mov dword [esp + 0x40], eax
call fcn.00448730
mov dword [esp + 0x7b8], eax
mov eax, dword [0x492118]
xor eax, 0x7bc18a53
mov dword [0x492118], eax
mov eax, dword [esp + 0x7bc]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 5
call fcn.0040a610
mov eax, dword [0x496034]
shr eax, 7
imul eax, eax, 0x4245717d
and eax, 0x9f05
mov dx, word [0x499c54]
mov cx, dx
sub ecx, eax
mov dx, cx
mov word [0x499c54], dx
mov eax, dword [esp + 0x7b8]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x44]
mov dword [ecx], eax
call fcn.00456214
mov dword [esp + 0x7b0], eax
mov eax, dword [0x495a20]
not eax
mov dx, ax
mov word [0x499f50], dx
mov eax, dword [esp + 0x7b8]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 3
call fcn.0040a610
mov eax, dword [0x493870]
add eax, 0x3ddbbffd
mov dword [0x493870], eax
cmp dword [esp + 0x7b0], 0
je 0x422692
mov eax, 0x4a70d178
mov ecx, dword [0x491d9c]
and ecx, 0xbf5f53e9
mov dword [0x491d9c], ecx
mov dx, word [0x49889e]
movsx ecx, dx
imul ecx, ecx, 0x37feb19d
cmp eax, ecx
jg 0x422296
mov eax, dword [0x490614]
xor eax, 0xddfcfcff
mov dword [0x490614], eax
mov eax, 0x75c5dff6
mov ecx, dword [esp + 0x7b0]
mov edx, dword [esp + 0x7c0]
mov dword [esp + 0x3c], ecx
mov ecx, edx
mov dword [esp + 0x38], eax
call fcn.00441cb0
mov ecx, dword [esp + 0x7c0]
mov dword [esp + 0x34], eax
call fcn.0044a7d0
mov ecx, esp
mov edx, dword [esp + 0x3c]
mov dword [ecx + 0xc], edx
mov edx, dword [esp + 0x34]
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov dword [ecx + 8], 1
call fcn.004563c7
mov si, word [0x49a7d6]
mov cx, si
inc ecx
mov si, cx
mov word [0x49a7d6], si
movsx ecx, si
and ecx, 0x309a84ca
mov edx, dword [0x49038c]
imul edx, ecx
mov dword [0x49038c], edx
mov ecx, dword [esp + 0x7b0]
mov edx, esp
mov dword [edx], ecx
mov dword [esp + 0x30], eax
call fcn.004564b5
mov ecx, dword [0x491fac]
or ecx, 0xe3a6bf9f
mov dword [0x491fac], ecx
mov ecx, dword [esp + 0x7c0]
mov dword [esp + 0x2c], eax
call fcn.0044a6d0
mov eax, dword [0x492bc0]
mov ecx, eax
inc ecx
mov dword [0x492bc0], ecx
add eax, 0xfc21567
mov ecx, dword [0x492138]
dec ecx
mov dword [0x492138], ecx
sub eax, ecx
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jne 0x4223ce
mov eax, dword [0x497468]
mov cx, word [0x498816]
movsx edx, cx
imul eax, edx
cmp eax, 0xca3ce7d3
je 0x4223a8
mov eax, dword [0x4912a0]
xor eax, 0x1605c922
mov dword [0x4912a0], eax
jmp 0x4223c9
mov ax, word [0x4979fa]
movsx ecx, ax
not ecx
mov edx, dword [0x491d20]
sub ecx, edx
mov edx, dword [0x491164]
sub edx, ecx
mov dword [0x491164], edx
jmp 0x4223e6
mov ax, word [0x49a66a]
mov cx, ax
or ecx, 0xde44
mov ax, cx
mov word [0x49a66a], ax
mov byte [esp + 0x1bc], 0
mov ax, word [0x499050]
movsx ecx, ax
xor ecx, 0xb47b69a6
cmp ecx, 0x1f67d15f
jne 0x422418
mov eax, dword [0x49697c]
xor eax, 0x67167ab7
mov dword [0x49697c], eax
mov eax, dword [0x48fe88]
mov ecx, esp
lea edx, [esp + 0x4e]
mov dword [ecx + 4], edx
mov dword [ecx + 8], 0x16e
mov dword [ecx], 0
call eax
sub esp, 0xc
mov ecx, dword [0x491a9c]
sar ecx, 2
sub ecx, 0xcd6d8422
or ecx, 0xc0014bbd
cmp ecx, 0xf69f34f6
mov dword [esp + 0x28], eax
je 0x422499
mov eax, dword [0x492a14]
inc eax
mov dword [0x492a14], eax
mov ecx, dword [0x491ea8]
shl ecx, 3
imul ecx, ecx, 0x7587b646
add ecx, 0x5293ea98
cmp eax, ecx
jg 0x422494
mov eax, dword [0x4914f8]
or eax, 0xdef4fd70
mov dword [0x4914f8], eax
jmp 0x422499
mov eax, 0x37dc48e5
mov byte [esp + 0x627], 0
mov ecx, dword [0x490c48]
imul ecx, ecx, 0x9fee6bcd
mov dword [0x490c48], ecx
mov ecx, esp
mov dword [ecx + 4], 0x15
mov dword [ecx], 0x48cf
mov dword [esp + 0x24], eax
call fcn.00448730
mov dword [esp + 0x7b4], eax
mov dx, word [0x499316]
mov ax, dx
imul eax, eax, 0xb12c0124
mov dx, ax
mov word [0x499316], dx
mov eax, dword [0x49bdbc]
mov ecx, dword [0x49bda4]
mov esi, dword [esp + 0x7b4]
mov edi, esp
mov dword [edi + 0x10], eax
mov dword [edi + 0xc], ecx
lea eax, [esp + 0x4e]
mov dword [edi + 8], eax
mov dword [edi + 4], esi
lea eax, [esp + 0x1bd]
mov dword [edi], eax
call fcn.00455f92
mov dx, word [0x499ed6]
mov cx, dx
and ecx, 0x3012
mov dx, cx
mov word [0x499ed6], dx
mov ecx, dword [esp + 0x7b4]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], 0x15
mov dword [esp + 0x20], eax
call fcn.0040a610
mov eax, dword [0x4962c8]
not eax
mov ecx, dword [0x496a50]
add ecx, eax
mov dword [0x496a50], ecx
mov eax, dword [0x49bdbc]
mov ecx, esp
mov dword [ecx], eax
call fcn.00412fc0
mov ecx, dword [0x494418]
or ecx, 0x89c674f1
or ecx, 0x81903bbb
mov esi, dword [esp + 0x24]
cmp esi, ecx
mov dword [esp + 0x1c], eax
jge 0x4225af
mov eax, dword [0x495838]
shl eax, 3
xor eax, 0xd6d41112
mov dword [0x494524], eax
mov eax, esp
lea ecx, [esp + 0x1bd]
mov dword [eax + 4], ecx
lea edx, [esp + 0x62e]
mov dword [eax], edx
mov dword [esp + 0x18], ecx
call fcn.00445350
mov eax, dword [0x490f78]
imul eax, eax, 0x859c0ec8
mov dword [0x490f78], eax
mov eax, esp
mov ecx, dword [esp + 0x18]
mov dword [eax], ecx
mov dword [eax + 4], 0x46b
call fcn.0042f280
mov eax, dword [0x4971c8]
mov ecx, eax
inc ecx
mov dword [0x4971c8], ecx
mov ecx, 0x5b6b828b
sub ecx, eax
mov eax, dword [0x490c10]
or eax, ecx
mov dword [0x490c10], eax
mov eax, esp
lea ecx, [esp + 0x4e]
mov dword [eax], ecx
mov dword [eax + 4], 0x16f
call fcn.0042f280
mov eax, dword [0x4919f0]
cmp eax, 0x856543e8
jle 0x422645
mov eax, dword [0x495828]
or eax, 0x1800a5
mov dword [0x495828], eax
mov eax, dword [0x48fee4]
mov ecx, esp
mov dword [ecx], 0x1612d
call eax
sub esp, 4
mov dx, word [0x49a68e]
mov ax, dx
xor eax, 0x3822
mov dx, ax
mov word [0x49a68e], dx
mov eax, dword [0x48fe34]
mov ecx, esp
lea esi, [esp + 0x62e]
mov dword [ecx], esi
call eax
sub esp, 4
mov word [0x4987e2], 0xd6f1
mov dword [esp + 0x14], eax
mov eax, dword [0x490718]
and eax, 0x7d1b957a
mov dword [0x490718], eax
mov eax, esp
lea ecx, [esp + 0x62e]
mov dword [eax], ecx
mov dword [eax + 4], 0x182
call fcn.0042f280
mov word [0x498ee6], 0x7ffd
mov eax, dword [0x4912d0]
mov ecx, 0xc59f709
sub ecx, eax
mov eax, dword [0x4970c0]
imul eax, ecx
mov dword [0x4970c0], eax
add esp, 0x7c4
pop esi
pop edi
ret