Function at 0x414780
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x658
mov eax, 4
imul ecx, eax, 0x1f8c
mov edx, dword [ecx + 0x48fe00]
sub edx, 0x452ff7ff
mov eax, 4
imul ecx, eax, 0x1f8c
mov dword [ecx + 0x48fe00], edx
mov ecx, dword [ebp + 8]
call fcn.00421030
cmp eax, 0x8000
jbe 0x4151f0
mov edx, 4
imul eax, edx, 0x17de
mov ecx, 4
imul edx, ecx, 0x10ca
mov eax, dword [eax + 0x48fe00]
and eax, dword [edx + 0x48fe00]
mov ecx, 4
imul edx, ecx, 0x17de
mov dword [edx + 0x48fe00], eax
mov eax, 4
imul ecx, eax, 0x1cce
mov edx, dword [ecx + 0x48fe00]
sub edx, 1
mov dword [ebp - 0x1c], edx
mov eax, 4
imul ecx, eax, 0x1cce
mov edx, dword [ebp - 0x1c]
mov dword [ecx + 0x48fe00], edx
mov eax, 4
imul ecx, eax, 0x1426
mov edx, dword [ecx + 0x48fe00]
xor edx, dword [ebp - 0x1c]
mov eax, 4
imul ecx, eax, 0x1426
mov dword [ecx + 0x48fe00], edx
mov edx, 4
imul eax, edx, 0x2e7
imul ecx, dword [eax + 0x48fe00], 0x6712f240
mov edx, 4
imul eax, edx, 0x2e7
mov dword [eax + 0x48fe00], ecx
mov ecx, 4
imul edx, ecx, 0x3430
mov eax, dword [edx + 0x48fe00]
shl eax, 7
cmp eax, 0x3845ed16
jl 0x4148ae
mov ecx, 4
imul edx, ecx, 0x1550
imul eax, dword [edx + 0x48fe00], 0x7d0b10e1
mov ecx, 4
imul edx, ecx, 0x1550
mov dword [edx + 0x48fe00], eax
lea eax, [ebp - 0x14c]
push eax
call fcn.00450d80
add esp, 4
mov dword [ebp - 0x28], eax
mov ecx, 4
imul edx, ecx, 0x3480
imul eax, dword [edx + 0x48fe00], 0x8db152c5
mov ecx, 4
imul edx, ecx, 0x3480
mov dword [edx + 0x48fe00], eax
call fcn.00442fd0
movzx eax, al
and eax, 0x80000003
jns 0x4148fa
dec eax
or eax, 0xfffffffc
inc eax
add eax, 7
push eax
mov ecx, dword [ebp - 0x28]
lea edx, [ebp + ecx - 0x14c]
push edx
call fcn.0045e590
add esp, 8
mov eax, 4
imul ecx, eax, 0x362d
mov edx, dword [ecx + 0x48fe00]
and edx, 0x1048abc1
mov eax, 4
imul ecx, eax, 0x362d
mov dword [ecx + 0x48fe00], edx
push 5
push 0x11a
call fcn.004511e0
add esp, 8
mov dword [ebp - 0x18], eax
mov edx, 4
imul eax, edx, 0x3699
mov ecx, dword [eax + 0x48fe00]
sar ecx, 0xa
and ecx, 0x16c47b25
cmp ecx, 0x7262a95a
jle 0x414995
mov edx, 4
imul eax, edx, 0x1703
mov ecx, dword [eax + 0x48fe00]
add ecx, 0x1625ade
mov edx, 4
imul eax, edx, 0x1703
mov dword [eax + 0x48fe00], ecx
mov ecx, dword [ebp - 0x18]
push ecx
lea edx, [ebp - 0x14c]
push edx
call fcn.00465010
add esp, 8
mov eax, 4
imul ecx, eax, 0x24b9
mov edx, dword [ecx + 0x48fe00]
add edx, 1
mov dword [ebp - 0x20], edx
mov eax, 4
imul ecx, eax, 0x24b9
mov edx, dword [ebp - 0x20]
mov dword [ecx + 0x48fe00], edx
mov eax, dword [ebp - 0x20]
or eax, 0xe6b76d46
cmp eax, 0xc5136081
je 0x414a22
mov ecx, 4
imul edx, ecx, 0x14d4
mov eax, 2
imul ecx, eax, 0x70a
movsx eax, word [ecx + 0x49db20]
not eax
and eax, 0x1096ea3b
mov ecx, dword [edx + 0x48fe00]
imul ecx, eax
mov edx, 4
imul eax, edx, 0x14d4
mov dword [eax + 0x48fe00], ecx
jmp 0x414a5b
mov ecx, 4
imul edx, ecx, 0x357e
mov eax, 2
imul ecx, eax, 0x2d1a
movsx eax, word [ecx + 0x49db20]
shl eax, 0xa
mov ecx, dword [edx + 0x48fe00]
xor ecx, eax
mov edx, 4
imul eax, edx, 0x357e
mov dword [eax + 0x48fe00], ecx
push 3
push 0x34ef
call fcn.004511e0
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, 2
imul edx, ecx, 0x216d
movsx eax, word [edx + 0x49db20]
cmp eax, 0x14e210ec
jl 0x414ab0
mov ecx, 2
imul edx, ecx, 0xa64
movsx eax, word [edx + 0x49db20]
imul ecx, eax, 0xe0d10c8f
mov edx, 2
imul eax, edx, 0xa64
mov word [eax + 0x49db20], cx
mov ecx, dword [ebp - 0x18]
push ecx
push 5
call fcn.0045eda0
add esp, 8
mov edx, 4
imul eax, edx, 0x3138
imul ecx, dword [eax + 0x48fe00], 0x6cdc2cf9
xor ecx, 0xa746425b
mov dword [ebp - 0x30], ecx
mov edx, 2
imul eax, edx, 0x21d5
movsx ecx, word [eax + 0x49db20]
mov edx, 0x99948085
sub edx, ecx
or edx, 0x6a02505a
mov dword [ebp - 0x34], edx
mov eax, 2
imul ecx, eax, 0x21d5
mov dx, word [ecx + 0x49db20]
sub dx, 1
mov eax, 2
imul ecx, eax, 0x21d5
mov word [ecx + 0x49db20], dx
mov edx, 4
imul eax, edx, 0x3138
mov ecx, dword [eax + 0x48fe00]
sub ecx, 1
mov edx, 4
imul eax, edx, 0x3138
mov dword [eax + 0x48fe00], ecx
mov ecx, dword [ebp - 0x30]
cmp ecx, dword [ebp - 0x34]
jg 0x414b75
mov edx, 4
imul eax, edx, 0xd03
mov ecx, 4
imul edx, ecx, 0x8c8
mov eax, dword [eax + 0x48fe00]
mov dword [edx + 0x48fe00], eax
mov ecx, dword [ebp - 0x10]
push ecx
lea edx, [ebp - 0x14c]
push edx
call fcn.00466071
add esp, 8
mov dword [ebp - 8], eax
mov eax, 4
imul ecx, eax, 0x1d80
mov edx, 4
imul eax, edx, 0x460
mov edx, dword [eax + 0x48fe00]
not edx
imul eax, edx, 0x329d9acc
mov ecx, dword [ecx + 0x48fe00]
xor ecx, eax
mov edx, 4
imul eax, edx, 0x1d80
mov dword [eax + 0x48fe00], ecx
mov ecx, dword [ebp - 0x10]
push ecx
push 3
call fcn.0045eda0
add esp, 8
mov edx, 4
imul eax, edx, 0x2ddf
mov ecx, dword [eax + 0x48fe00]
xor ecx, 0x59436451
mov dword [ebp - 0x2c], ecx
mov edx, 4
imul eax, edx, 0x2ddf
mov ecx, dword [eax + 0x48fe00]
sub ecx, 1
mov edx, 4
imul eax, edx, 0x2ddf
mov dword [eax + 0x48fe00], ecx
cmp dword [ebp - 0x2c], 0x2dcd1895
jl 0x414c45
mov ecx, 4
imul edx, ecx, 0x1ad
mov eax, dword [edx + 0x48fe00]
sub eax, 0x7ff980
mov ecx, 4
imul edx, ecx, 0x1ad
mov dword [edx + 0x48fe00], eax
cmp dword [ebp - 8], 0
je 0x415144
mov eax, 4
imul ecx, eax, 0x25dc
imul edx, dword [ecx + 0x48fe00], 0x28899ef1
mov eax, 4
imul ecx, eax, 0x25dc
mov dword [ecx + 0x48fe00], edx
mov edx, 4
imul eax, edx, 0x1038
mov ecx, dword [eax + 0x48fe00]
and ecx, 0x6083feac
mov edx, 4
imul eax, edx, 0x1038
mov dword [eax + 0x48fe00], ecx
mov ecx, dword [ebp - 8]
push ecx
push 1
mov ecx, dword [ebp + 8]
call fcn.00421030
push eax
mov ecx, dword [ebp + 8]
call fcn.00423160
push eax
call fcn.00466224
add esp, 0x10
mov edx, 2
imul eax, edx, 0x6c5
mov cx, word [eax + 0x49db20]
sub cx, 1
mov word [ebp - 2], cx
mov edx, 2
imul eax, edx, 0x6c5
mov cx, word [ebp - 2]
mov word [eax + 0x49db20], cx
movsx edx, word [ebp - 2]
xor edx, 0xf6446483
mov eax, 4
imul ecx, eax, 0xe8e
mov eax, dword [ecx + 0x48fe00]
sub eax, edx
mov ecx, 4
imul edx, ecx, 0xe8e
mov dword [edx + 0x48fe00], eax
mov eax, dword [ebp - 8]
push eax
call fcn.00465d46
add esp, 4
mov ecx, 2
imul edx, ecx, 0x11d1
movsx eax, word [edx + 0x49db20]
sub eax, 0x751fa50c
mov ecx, 2
imul edx, ecx, 0x11d1
mov word [edx + 0x49db20], ax
mov ecx, dword [ebp + 8]
call fcn.00430370
mov eax, 2
imul ecx, eax, 0x3309
movsx edx, word [ecx + 0x49db20]
sub edx, 0x60fda2d8
mov eax, 2
imul ecx, eax, 0x3309
mov word [ecx + 0x49db20], dx
mov edx, 1
imul eax, edx, 0x104
mov byte [ebp + eax - 0x254], 0
mov ecx, 4
imul edx, ecx, 0x2b18
mov eax, dword [edx + 0x48fe00]
xor eax, 0x97f99eeb
mov ecx, 4
imul edx, ecx, 0x2b18
mov dword [edx + 0x48fe00], eax
push 0x104
lea eax, [ebp - 0x254]
push eax
push 0
call dword [0x48fd18]
mov ecx, 4
imul edx, ecx, 0x2d87
mov eax, dword [edx + 0x48fe00]
sub eax, 1
mov dword [ebp - 0x14], eax
mov ecx, 4
imul edx, ecx, 0x2d87
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x48fe00], eax
imul ecx, dword [ebp - 0x14], 0x2ec099b6
and ecx, 0x7e3c9ef9
mov edx, 4
imul eax, edx, 0x212d
mov edx, dword [eax + 0x48fe00]
add edx, ecx
mov eax, 4
imul ecx, eax, 0x212d
mov dword [ecx + 0x48fe00], edx
mov edx, 1
shl edx, 0xa
mov byte [ebp + edx - 0x658], 0
mov eax, 4
imul ecx, eax, 0x7fe
mov edx, 4
imul eax, edx, 0x1330
mov ecx, dword [ecx + 0x48fe00]
mov dword [eax + 0x48fe00], ecx
mov edx, 4
imul eax, edx, 0x7fe
mov ecx, dword [eax + 0x48fe00]
sub ecx, 1
mov edx, 4
imul eax, edx, 0x7fe
mov dword [eax + 0x48fe00], ecx
push 0x15
push 0x356c
call fcn.004511e0
add esp, 8
mov dword [ebp - 0x24], eax
mov ecx, 4
imul edx, ecx, 0xeed
mov eax, 4
imul ecx, eax, 0x1d5e
mov edx, dword [edx + 0x48fe00]
add edx, dword [ecx + 0x48fe00]
mov eax, 4
imul ecx, eax, 0xeed
mov dword [ecx + 0x48fe00], edx
mov edx, 4
imul eax, edx, 0x1d5e
mov ecx, dword [eax + 0x48fe00]
add ecx, 1
mov edx, 4
imul eax, edx, 0x1d5e
mov dword [eax + 0x48fe00], ecx
mov ecx, dword [0x48fc0c]
push ecx
mov edx, dword [0x48fbf4]
push edx
lea eax, [ebp - 0x254]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
lea edx, [ebp - 0x658]
push edx
call fcn.00466470
add esp, 0x14
mov eax, 4
imul ecx, eax, 0xce4
mov edx, dword [ecx + 0x48fe00]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, 4
imul ecx, eax, 0xce4
mov edx, dword [ebp - 0xc]
mov dword [ecx + 0x48fe00], edx
mov eax, dword [ebp - 0xc]
xor eax, 0xfb561809
cmp eax, 0x608068
je 0x414f8b
mov ecx, 2
imul edx, ecx, 0x2f85
mov eax, 4
imul ecx, eax, 0x17a1
mov eax, 0x50ab73fc
sub eax, dword [ecx + 0x48fe00]
movsx ecx, word [edx + 0x49db20]
or ecx, eax
mov edx, 2
imul eax, edx, 0x2f85
mov word [eax + 0x49db20], cx
mov ecx, dword [ebp - 0x24]
push ecx
push 0x15
call fcn.0045eda0
add esp, 8
mov edx, 4
imul eax, edx, 0xd8a
imul ecx, dword [eax + 0x48fe00], 0xf7cc6ad5
mov edx, 4
imul eax, edx, 0xd8a
mov dword [eax + 0x48fe00], ecx
mov ecx, dword [0x48fc0c]
push ecx
call fcn.004572a0
add esp, 4
mov edx, 4
imul eax, edx, 0x19b3
mov ecx, dword [eax + 0x48fe00]
or ecx, 0x20000422
mov edx, 4
imul eax, edx, 0x19b3
mov dword [eax + 0x48fe00], ecx
lea ecx, [ebp - 0x658]
push ecx
lea edx, [ebp - 0x14c]
push edx
call fcn.0045d230
add esp, 8
mov eax, 4
imul ecx, eax, 0x784
mov edx, dword [ecx + 0x48fe00]
or edx, 0xa986f191
mov eax, 4
imul ecx, eax, 0x784
mov dword [ecx + 0x48fe00], edx
push 0x401
push 0
lea edx, [ebp - 0x658]
push edx
call fcn.00464f70
add esp, 0xc
mov eax, 4
imul ecx, eax, 0x31ca
mov edx, dword [ecx + 0x48fe00]
xor edx, 0x905d4801
mov eax, 4
imul ecx, eax, 0x31ca
mov dword [ecx + 0x48fe00], edx
push 0x105
push 0
lea edx, [ebp - 0x254]
push edx
call fcn.00464f70
add esp, 0xc
mov eax, 4
imul ecx, eax, 0x748
mov edx, 4
imul eax, edx, 0xfd6
mov edx, dword [eax + 0x48fe00]
and edx, 0xe9ef5166
cmp dword [ecx + 0x48fe00], edx
jle 0x4150da
mov eax, 4
imul ecx, eax, 0x1c58
mov edx, dword [ecx + 0x48fe00]
and edx, 0xfe9a6fe1
mov eax, 4
imul ecx, eax, 0x1c58
mov dword [ecx + 0x48fe00], edx
push 0x15f90
call dword [0x48fd74]
mov edx, 4
imul eax, edx, 0x3b4
mov ecx, dword [eax + 0x48fe00]
or ecx, 0x34175175
mov edx, 4
imul eax, edx, 0x3b4
mov dword [eax + 0x48fe00], ecx
lea ecx, [ebp - 0x14c]
push ecx
call dword [0x48fcbc]
mov edx, 2
imul eax, edx, 0x1337
movsx ecx, word [eax + 0x49db20]
imul edx, ecx, 0x2042e333
mov eax, 2
imul ecx, eax, 0x1337
mov word [ecx + 0x49db20], dx
mov edx, 4
imul eax, edx, 0x28b8
mov ecx, 2
imul edx, ecx, 0xa1
movsx ecx, word [edx + 0x49db20]
or ecx, 0x86ca3d28
mov edx, dword [eax + 0x48fe00]
add edx, ecx
mov eax, 4
imul ecx, eax, 0x28b8
mov dword [ecx + 0x48fe00], edx
push 0x118
push 0
lea edx, [ebp - 0x14c]
push edx
call fcn.00464f70
add esp, 0xc
mov eax, 2
imul ecx, eax, 0xd60
mov edx, 4
imul eax, edx, 0x3370
movsx ecx, word [ecx + 0x49db20]
or ecx, dword [eax + 0x48fe00]
mov edx, 2
imul eax, edx, 0xd60
mov word [eax + 0x49db20], cx
mov ecx, 4
imul edx, ecx, 0x3370
mov eax, dword [edx + 0x48fe00]
sub eax, 1
mov ecx, 4
imul edx, ecx, 0x3370
mov dword [edx + 0x48fe00], eax
mov eax, 4
imul ecx, eax, 0x1a93
imul edx, dword [ecx + 0x48fe00], 0xa3e11048
or edx, 0xa941b398
cmp edx, 0x6d9ac52b
jne 0x41524e
mov eax, 2
imul ecx, eax, 0x25ec
mov edx, 2
imul eax, edx, 0x53
movsx edx, word [eax + 0x49db20]
xor edx, 0xf3d8096e
movsx eax, word [ecx + 0x49db20]
or eax, edx
mov ecx, 2
imul edx, ecx, 0x25ec
mov word [edx + 0x49db20], ax
mov esp, ebp
pop ebp
ret