Function at 0x41c2ba
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x820
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x818], eax
xor word [0x442682], 0x7500
push 8
push 0x2ec2
call fcn.004036ba
add esp, 8
mov esi, eax
movsx eax, word [0x442080]
and eax, 0x800f3dd5
cmp eax, 0xe80d8311
jl 0x41c329
mov eax, dword [0x446a54]
lea ecx, [eax - 1]
mov dword [0x446a54], ecx
imul eax, dword [0x445904]
cmp eax, 0xbfb21981
jne 0x41c329
add dword [0x445cc8], 0xff84392a
push esi
push ebx
call sub.msvcrt.dll_strcmp
add esp, 8
mov edi, eax
imul eax, dword [0x444754], 0xdbce7621
mov dword [0x444754], eax
push esi
push 8
call fcn.004042a2
add esp, 8
and dword [0x445ac8], 0xed5625f0
test edi, edi
je 0x41c4c1
mov eax, dword [0x4465b8]
lea ecx, [eax - 1]
mov dword [0x4465b8], ecx
mov ecx, 0x36ddc6a2
sub ecx, eax
xor ecx, 0xde74b9cd
imul ecx, dword [0x446f04]
mov dword [0x446f04], ecx
mov eax, 0x670e6abf
or eax, dword [0x444838]
add dword [0x446778], eax
mov eax, dword [0x446e9c]
or dword [0x4452cc], eax
mov dword [0x446920], 0x38e3810
mov eax, dword [0x446f50]
lea ecx, [eax + 1]
mov dword [0x446f50], ecx
and eax, 0x7b5617b0
or dword [0x443ba4], eax
mov dword [0x444440], 0xa12c70c
and dword [0x445bbc], 0x75caf780
lea ecx, [esp + 0x4ec]
call fcn.00432a50
mov eax, dword [0x444784]
not eax
and eax, 0x17b3bb68
movsx ecx, word [0x442426]
or ecx, eax
and dword [0x446c58], ecx
movsx eax, word [0x44213e]
xor eax, 0x24f72b48
add dword [0x447084], eax
add dword [0x447310], 0xa9751b3
add word [0x442520], 0x91d0
add dword [0x44649c], 0x20297c83
add dword [0x446e8c], 0x40282551
inc dword [0x443550]
movsx eax, word [0x441e3e]
add eax, 0xffb7be01
cmp eax, 0x4c05caf8
jg 0x41c477
mov eax, dword [0x444840]
mov ecx, dword [0x444f68]
imul ecx, ecx, 0xd4879f10
and ecx, eax
movzx eax, word [0x441b8c]
xor eax, ecx
mov word [0x441b8c], ax
mov eax, dword [0x444378]
and dword [0x443658], eax
add dword [0x44533c], 0x4401020c
push 0
call sub.msvcrt.dll_time
add esp, 4
mov edi, eax
mov eax, dword [0x444cec]
add eax, 0x57dcdef5
mov ecx, dword [0x446e20]
shl ecx, 3
xor ecx, eax
cmp ecx, 0xd0c1fb97
jne 0x41c515
mov dword [0x443468], 0x218677cd
jmp 0x41c538
movsx eax, word [0x4427c4]
and eax, 0x1d66423a
xor eax, dword [0x444164]
xor eax, 0x1d66423a
mov dword [0x444164], eax
cmp dword [ebp + 0x18], 0
je 0x41c6d8
mov eax, dword [0x446ed0]
xor eax, dword [0x443674]
xor eax, 0x8507c502
mov dword [0x443674], eax
mov ecx, dword [ebp + 0x10]
push 0
call fcn.00427aba
xor dword [0x443bdc], 0xfe75182c
jmp 0x41e054
mov eax, dword [0x4461f4]
lea ecx, [eax + 1]
mov dword [0x4461f4], ecx
add eax, 0xebb7d19e
cmp eax, 0xbc564a2d
jg 0x41c538
and word [0x442da6], 0x9b6a
mov byte [esp + 0x518], 0
and word [0x4432fc], 0xa2c6
push ebx
call sub.msvcrt.dll_strlen
add esp, 4
mov esi, eax
add dword [0x443f28], 0xfd3e2b3
cmp esi, 0x80
jl 0x41c574
add word [0x4423c6], 0x22c1
jmp 0x41df5c
add edi, 0x258
mov dword [esp + 0x18], edi
or dword [0x445b0c], 0x53171e7d
lea eax, [esp + 0x798]
push ebx
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
add dword [0x4474fc], 0x625b6f54
mov eax, esi
add eax, 0xfffffffb
mov ecx, 0x38e6e9a
mov edi, esi
mov dword [0x443888], 0x84208862
movzx edx, byte [esp + edi + 0x797]
cmp edx, 0x3a
je 0x41c5e3
dec edi
mov edx, dword [0x44537c]
and edx, ecx
sub dword [0x446a8c], edx
lea edx, [edi + 1]
mov ebx, 0x50
cmp edx, eax
jg 0x41c5af
jmp 0x41c63b
mov eax, dword [0x445620]
add eax, 0x9480
movzx ecx, word [0x4425fe]
or ecx, eax
mov word [0x4425fe], cx
lea eax, [esp + edi + 0x798]
mov byte [esp + edi + 0x797], 0
add dword [0x445ff8], 0xa3032dd
movsx ecx, word [0x44290a]
and dword [0x446a00], ecx
push eax
call sub.msvcrt.dll_atoi
add esp, 4
mov ebx, eax
xor dword [0x447274], 0x3bffbffa
dec edi
mov esi, edi
movzx eax, word [0x442f16]
shl eax, 3
and eax, 0x7550
add word [0x442a24], ax
test esi, esi
js 0x41c7ce
xor eax, eax
dec word [0x441b00]
mov ecx, dword [0x443a68]
cmp ecx, 0xf7ffbdf7
jne 0x41c68e
mov ecx, dword [0x446d0c]
sar ecx, 4
mov edx, dword [0x4458b8]
dec edx
mov dword [0x4458b8], edx
xor edx, ecx
xor dword [0x4440e0], edx
mov cl, byte [esp + eax + 0x798]
mov byte [esp + eax + 0x718], cl
xor dword [0x4472f0], 0xa3b3370
movzx ecx, byte [esp + eax + 0x718]
cmp ecx, 0x2f
je 0x41c77c
mov ecx, dword [0x4477b8]
shl ecx, 7
and ecx, 0x3ad32780
or dword [0x4453d4], ecx
cmp eax, esi
lea eax, [eax + 1]
jl 0x41c65b
jmp 0x41c7ce
add word [0x441544], 0x7708
mov esi, dword [ebp + 0x10]
push esi
mov eax, dword [ebp + 0xc]
push eax
call fcn.0040813b
add esp, 8
mov ecx, dword [0x447754]
mov dword [0x44376c], ecx
test eax, eax
jg 0x41cb02
mov eax, 0x2392321c
sub eax, dword [0x445034]
mov ecx, dword [0x443bb4]
lea edx, [ecx + 1]
mov dword [0x443bb4], edx
add eax, ecx
add dword [0x4437f8], eax
mov ecx, esi
push 0
call fcn.00427aba
mov eax, dword [0x44538c]
shl eax, 0xa
mov ecx, dword [0x447304]
lea edx, [ecx - 1]
mov dword [0x447304], edx
mov edx, 1
sub edx, ecx
lea eax, [eax + edx - 0x6c5b9a6f]
cmp eax, 0x9468372c
jg 0x41caf8
dec word [0x4423c8]
mov eax, dword [0x4476fc]
mov eax, dword [0x44539c]
dec dword [0x4470f8]
jmp 0x41cb02
and dword [0x443f28], 0xe23a203
mov byte [esp + eax + 0x718], 0
mov cx, word [0x4417b4]
cmp eax, esi
jg 0x41c7c4
dec eax
lea ecx, [esp + 0x518]
xor dword [0x4454d8], 0x80900481
mov dl, byte [esp + eax + 0x799]
mov byte [ecx], dl
xor dword [0x4437d4], 0xd4db24a4
inc eax
inc ecx
cmp eax, esi
jl 0x41c7a1
add dword [0x443c28], 0x32497eb0
xor word [0x4427f2], 0x2ea
lea eax, [esp + 0x518]
push eax
call sub.msvcrt.dll_strlen
add esp, 4
mov esi, eax
mov edi, dword [ebp + 0xc]
push edi
call sub.msvcrt.dll_strlen
add esp, 4
add eax, esi
cmp eax, 0x200
jb 0x41c81d
mov eax, dword [0x444cc4]
cmp eax, 0x1f185e68
jne 0x41df5c
add dword [0x444410], 0xd86836a6
jmp 0x41df5c
mov eax, dword [0x4437d0]
and eax, 0x2a6
movzx ecx, word [0x44215e]
xor ecx, eax
xor ecx, 0xfcd7
mov word [0x44215e], cx
push edi
lea eax, [esp + 0x51c]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
add dword [0x445668], 0xba21bd51
mov eax, dword [0x446bb4]
inc eax
mov dword [0x446bb4], eax
xor eax, dword [0x444b60]
xor eax, 0x8db674b2
mov dword [0x444b60], eax
push 5
push 0x1ce
call fcn.004036ba
add esp, 8
mov esi, eax
mov eax, dword [0x444490]
mov ecx, 0x14df9ad
sub ecx, eax
movzx eax, word [0x4424b0]
or eax, ecx
mov word [0x4424b0], ax
add word [0x44253e], 0x95eb
lea ecx, [esp + 0x4ec]
push esi
call fcn.0041e3ca
mov eax, dword [0x446840]
xor eax, 0xe658
movzx ecx, word [0x441fd6]
sub ecx, eax
mov word [0x441fd6], cx
mov eax, dword [0x446788]
lea ecx, [eax + 1]
mov dword [0x446788], ecx
or eax, 0x415ce0a1
xor eax, 0x8e21195a
sub dword [0x446ec8], eax
push esi
push 5
call fcn.004042a2
add esp, 8
or dword [0x44564c], 0xc4104000
imul eax, dword [0x444138], 0x6b40085a
mov dword [0x444138], eax
movzx eax, word [0x4422ca]
add eax, 0x72b3
xor word [0x441742], ax
xor edx, edx
mov eax, dword [ebp + 0x10]
cmp dword [eax + 8], 0
je 0x41cbba
mov eax, 0x2c9f7bda
add eax, dword [0x443620]
xor dword [0x444ae8], eax
push 0xc
push 0x2cf3
call fcn.004036ba
add esp, 8
mov edi, eax
mov dword [0x445c3c], 0x6803e84a
lea esi, [esp + 0xd8]
mov ecx, esi
push edi
call fcn.0041242e
mov ecx, dword [ebp + 0x10]
push 0
push esi
call fcn.00403986
mov dword [esp + 0x1c], eax
mov dword [esp + 0xd8], 0x43f0ac
mov ecx, esi
call fcn.00404380
imul eax, dword [0x4458ec], 0x1b5386c3
mov dword [0x4458ec], eax
push edi
push 0xc
call fcn.004042a2
add esp, 8
mov eax, 0x1ef23d22
xor eax, dword [0x447538]
cmp eax, 0xf6aaae83
jg 0x41c9c5
mov dword [0x444fdc], 0xcac00206
xor edx, edx
cmp dword [esp + 0x1c], 0
jne 0x41cb9c
mov eax, dword [0x446658]
lea ecx, [eax - 1]
mov dword [0x446658], ecx
xor eax, 0x59a6b117
or dword [0x444984], eax
mov ax, word [0x442e16]
mov eax, dword [0x444e48]
sar eax, 1
mov ecx, dword [0x447324]
imul eax, eax, 0x6f0f9d2d
lea eax, [ecx + eax + 0x53d5bc0]
mov dword [0x447324], eax
add dword [0x445028], 0x57f2a40a
mov eax, dword [0x443a74]
sar eax, 0xa
and eax, 0xddfe774f
sub dword [0x446fe4], eax
mov ax, word [0x44329e]
movzx eax, word [0x442374]
dec eax
mov word [0x442374], ax
cwde
and dword [0x446880], eax
mov eax, dword [0x44651c]
mov ecx, dword [0x446a20]
lea edx, [ecx - 1]
mov dword [0x446a20], edx
add eax, ecx
imul eax, dword [0x446958]
mov dword [0x446958], eax
mov eax, dword [0x4466d0]
shl eax, 3
and dword [0x443930], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 4]
imul edx, dword [0x444138], 0x6b40085a
mov dword [0x444138], edx
movzx edx, word [0x4422ca]
add edx, 0x72b3
xor word [0x441742], dx
push 0xb
push eax
call fcn.00402b72
mov eax, dword [0x446ed8]
imul eax, dword [0x4453a0]
mov dword [0x4453a0], eax
push 6
push 0x23e5
call fcn.004036ba
add esp, 8
mov esi, eax
mov eax, dword [0x445840]
dec eax
mov dword [0x445840], eax
cmp eax, 0xe1905d11
jl 0x41cb1b
movsx eax, word [0x441c36]
and eax, 0xf9bfb86b
imul eax, dword [0x447580]
mov dword [0x447580], eax
jmp 0x41cb2a
or dword [0x4437f4], 0xa2393c32
mov eax, dword [0x4470e0]
sar eax, 7
imul eax, eax, 0x61c42738
add dword [0x4461b0], eax
jmp 0x41e054
imul eax, dword [0x4462fc], 0x74274118
mov dword [0x4462fc], eax
add word [0x44253e], 0x95eb
lea ecx, [esp + 0x4ec]
push esi
call fcn.0041e3ca
mov eax, dword [0x446840]
xor eax, 0xe658
movzx ecx, word [0x441fd6]
sub ecx, eax
mov word [0x441fd6], cx
add word [0x44195c], 0x32cf
push esi
push 6
call fcn.004042a2
add esp, 8
mov eax, 0x1e2d0c0e
add eax, dword [0x447238]
and eax, 0x200e3b62
mov ecx, 0xace424e2
add ecx, dword [0x446940]
mov edx, 1
cmp eax, ecx
jle 0x41cb9c
xor dword [0x444720], 0xdbce8b65
mov eax, dword [0x447130]
shl eax, 0xa
add eax, 0x24dc8a06
cmp eax, 0x3c463924
jl 0x41cbba
add dword [0x444b90], 0x6fad3701
mov dword [esp + 0x1c], edx
imul eax, dword [0x444c40], 0xd604c1bc
add eax, 0x6892fbe4
mov dword [0x44770c], eax
lea edi, [esp + 0xc4]
mov ecx, edi
lea eax, [esp + 0x518]
push eax
call fcn.0041242e
mov dword [esp + 0xc4], 0x43f0e4
add word [0x4425ea], 0x920b
mov byte [esp + 0xd0], 1
mov eax, dword [0x44408c]
lea ecx, [eax + 1]
mov dword [0x44408c], ecx
mov ecx, dword [0x44781c]
lea edx, [ecx + 1]
mov dword [0x44781c], edx
add ecx, 0x78b4cab8
xor ecx, eax
or dword [0x44665c], ecx
lea ecx, [esp + 0x4ec]
push edi
call fcn.00408f5c
mov dword [esp + 0xc4], 0x43f0ac
mov ecx, edi
call fcn.00404380
mov eax, dword [0x446ed4]
lea ecx, [eax + 1]
mov dword [0x446ed4], ecx
add eax, 0xe59ece74
imul eax, dword [0x44608c]
mov dword [0x44608c], eax
push 0x32
push 0x23ed
call fcn.004036ba
add esp, 8
mov edi, eax
mov eax, dword [0x446104]
mov eax, dword [0x4465b8]
add dword [0x443bc0], eax
lea esi, [esp + 0xb0]
mov ecx, esi
push edi
call fcn.0041242e
mov dword [esp + 0xb0], 0x43f0e4
add word [0x4425ea], 0x920b
mov byte [esp + 0xbc], 1
mov eax, dword [0x44408c]
lea ecx, [eax + 1]
mov dword [0x44408c], ecx
mov ecx, dword [0x44781c]
lea edx, [ecx + 1]
mov dword [0x44781c], edx
add ecx, 0x78b4cab8
xor ecx, eax
or dword [0x44665c], ecx
lea ecx, [esp + 0x4ec]
push esi
call fcn.00408f5c
mov dword [esp + 0xb0], 0x43f0ac
mov ecx, esi
call fcn.00404380
mov eax, dword [0x447408]
imul eax, eax, 0x92b172f3
mov ecx, dword [0x4462c4]
sar ecx, 3
and ecx, eax
or dword [0x4450a8], ecx
push edi
push 0x32
call fcn.004042a2
add esp, 8
and word [0x4421d0], 0x1bad
lea eax, [esp + 0x718]
lea esi, [esp + 0x9c]
mov ecx, esi
push eax
call fcn.0041242e
mov dword [esp + 0x9c], 0x43f0e4
add word [0x4425ea], 0x920b
mov byte [esp + 0xa8], 1
mov eax, dword [0x44408c]
lea ecx, [eax + 1]
mov dword [0x44408c], ecx
mov ecx, dword [0x44781c]
lea edx, [ecx + 1]
mov dword [0x44781c], edx
add ecx, 0x78b4cab8
xor ecx, eax
or dword [0x44665c], ecx
lea ecx, [esp + 0x4ec]
push esi
call fcn.00408f5c
mov dword [esp + 0x9c], 0x43f0ac
mov ecx, esi
call fcn.00404380
mov eax, dword [esp + 0x1c]
add dword [0x445360], 0x6e2e94fc
test eax, eax
je 0x41d013
movsx eax, word [0x441aae]
add eax, 0x452da295
cmp eax, 0x36029d2
jl 0x41cde2
and dword [0x445a70], 0xe24acfe3
push 0x44
push 0x2ca1
call fcn.004036ba
add esp, 8
mov esi, eax
mov eax, dword [0x444248]
dec eax
mov dword [0x444248], eax
imul eax, eax, 0x8d465f19
add eax, 0x94c7fa1
mov ecx, 0x6fa8d5b0
xor ecx, dword [0x4472ec]
cmp eax, ecx
jge 0x41ce28
mov eax, 0xc9564c1d
or eax, dword [0x4448dc]
mov dword [0x447358], eax
lea edi, [esp + 0x88]
mov ecx, edi
push esi
call fcn.0041242e
mov dword [esp + 0x88], 0x43f0e4
add word [0x4425ea], 0x920b
mov byte [esp + 0x94], 1
mov eax, dword [0x44408c]
lea ecx, [eax + 1]
mov dword [0x44408c], ecx
mov ecx, dword [0x44781c]
lea edx, [ecx + 1]
mov dword [0x44781c], edx
add ecx, 0x78b4cab8
xor ecx, eax
or dword [0x44665c], ecx
lea ecx, [esp + 0x4ec]
push edi
call fcn.00408f5c
mov dword [esp + 0x88], 0x43f0ac
mov ecx, edi
call fcn.00404380
mov eax, dword [0x445cc8]
shl eax, 9
add eax, 0x3e8e8eb
cmp eax, 0x8e91f472
jg 0x41cebd
or dword [0x44368c], 0xbb1c5dc
jmp 0x41cece
mov eax, dword [0x443690]
inc eax
mov dword [0x443690], eax
or dword [0x445910], eax
push 3
push 0x1601
call fcn.004036ba
add esp, 8
mov edi, eax
mov eax, dword [0x445618]
shl eax, 8
cmp eax, 0x39abd9be
jg 0x41cef8
add dword [0x443714], 0x7ffd7fea
push esi
push 0x44
call fcn.004042a2
add esp, 8
mov eax, dword [0x4460d4]
or eax, 0x63bc
xor eax, 0x9803
movzx ecx, word [0x441f02]
or ecx, eax
mov word [0x441f02], cx
imul eax, dword [0x444138], 0x6b40085a
mov dword [0x444138], eax
movzx eax, word [0x4422ca]
add eax, 0x72b3
xor word [0x441742], ax
lea esi, [esp + 0xec]
mov eax, dword [ebp + 0x10]
push dword [eax + 8]
push edi
push esi
call sub.msvcrt.dll_sprintf
add esp, 0xc
imul ax, word [0x4423fc], 0x5540
mov word [0x4423fc], ax
push edi
push 3
call fcn.004042a2
add esp, 8
mov eax, dword [0x446af4]
sar eax, 7
add eax, 0x275c9188
movsx ecx, word [0x44190c]
or ecx, eax
mov dword [0x443d60], ecx
lea edi, [esp + 0x74]
mov ecx, edi
push esi
call fcn.0041242e
mov dword [esp + 0x74], 0x43f0e4
add word [0x4425ea], 0x920b
mov byte [esp + 0x80], 1
mov eax, dword [0x44408c]
lea ecx, [eax + 1]
mov dword [0x44408c], ecx
mov ecx, dword [0x44781c]
lea edx, [ecx + 1]
mov dword [0x44781c], edx
add ecx, 0x78b4cab8
xor ecx, eax
or dword [0x44665c], ecx
lea ecx, [esp + 0x4ec]
push edi
call fcn.00408f5c
mov dword [esp + 0x74], 0x43f0ac
mov ecx, edi
call fcn.00404380
mov eax, dword [0x44482c]
dec eax
mov dword [0x44482c], eax
and eax, 0x6b49
mov word [0x4431a0], ax
mov eax, dword [0x4446ac]
cmp eax, 0x90380c0e
jne 0x41d036
movsx eax, word [0x4417a4]
sar eax, 9
and eax, 0x88150402
add dword [0x445458], eax
jmp 0x41d040
xor dword [0x446458], 0xca7d3d31
push 5
push 0x438d
call fcn.004036ba
add esp, 8
mov esi, eax
mov ax, 0xf944
add ax, word [0x44160e]
mov word [0x442dc4], ax
lea edi, [esp + 0x60]
mov ecx, edi
push esi
call fcn.0041242e
mov dword [esp + 0x60], 0x43f0e4
add word [0x4425ea], 0x920b
mov byte [esp + 0x6c], 1
mov eax, dword [0x44408c]
lea ecx, [eax + 1]
mov dword [0x44408c], ecx
mov ecx, dword [0x44781c]
lea edx, [ecx + 1]
mov dword [0x44781c], edx
add ecx, 0x78b4cab8
xor ecx, eax
or dword [0x44665c], ecx
lea ecx, [esp + 0x4ec]
push edi
call fcn.00408f5c
mov dword [esp + 0x60], 0x43f0ac
mov ecx, edi
call fcn.00404380
mov eax, 0x79789558
xor eax, dword [0x443c38]
or dword [0x446b70], eax
push esi
push 5
call fcn.004042a2
add esp, 8
and dword [0x446398], 0xec331f7f
cmp dword [esp + 0x1c], 0
je 0x41d123
imul eax, dword [0x443908], 0x34a2d51c
and eax, 0x3b62f98
xor dword [0x444ee8], eax
lea ecx, [esp + 0x4ec]
mov eax, dword [ebp + 0x10]
push eax
call fcn.00408f5c
inc dword [0x445660]
mov eax, dword [0x4464e0]
mov ecx, 0x32212dfe
sub ecx, eax
mov eax, dword [0x447238]
sar eax, 3
add eax, 0xb1bdb72b
or eax, 0x3eb2ef4d
cmp ecx, eax
jge 0x41d151
mov dword [0x44488c], 0x67eee6f2
jmp 0x41d15b
and dword [0x445ca0], 0x18861284
lea eax, [esp + 0x718]
push eax
call dword [0x441060]
mov ecx, dword [0x444028]
and ecx, dword [0x445618]
add dword [0x447210], ecx
test eax, eax
je 0x41d330
imul cx, word [0x4428e8], 0x9f1f
mov word [0x4428e8], cx
xorps xmm0, xmm0
movaps xmmword [esp + 0x500], xmm0
and word [0x441426], 0x55a0
mov word [esp + 0x500], 2
mov ecx, dword [0x4457dc]
sub dword [0x4445b4], ecx
mov esi, dword [0x441068]
mov ecx, dword [0x44106c]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esp + 0x5c], eax
sub esp, 4
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call ecx
push eax
call esi
mov dword [esp + 0x504], eax
imul eax, dword [0x443744], 0x5efe984a
mov dword [0x443744], eax
sub esp, 4
movzx eax, bx
mov dword [esp], eax
call dword [0x441064]
mov word [esp + 0x502], ax
mov eax, dword [0x444440]
sar eax, 5
xor eax, 0x67433f29
sub dword [0x446480], eax
cmp dword [esp + 0x818], 0
je 0x41d33f
mov eax, dword [0x443f68]
lea ecx, [eax + 1]
mov dword [0x443f68], ecx
movsx ecx, word [0x4423e0]
not ecx
lea eax, [eax + ecx + 1]
cmp eax, 0xccaddb1e
je 0x41d279
mov eax, dword [0x446be8]
add eax, eax
or eax, 0x144e770c
xor eax, 0x689080d3
movsx ecx, word [0x443246]
cmp eax, ecx
jg 0x41d279
mov dword [0x446d4c], 0x53ee98e5
mov eax, 0x10624dd3
mul dword [esp + 0x818]
shr edx, 6
lea eax, [esp + 0x500]
push edx
push eax
call fcn.0041e05c
add esp, 8
mov edi, eax
and dword [0x443634], 0xf0a3060f
test edi, edi
mov ebx, dword [ebp + 0x10]
js 0x41d36f
mov eax, dword [0x443468]
mov ecx, 0x41035729
sub ecx, eax
movzx eax, word [0x44337a]
add eax, ecx
mov word [0x44337a], ax
lea esi, [esp + 0x818]
push 4
push esi
push 0x1006
push 0xffff
push edi
call dword [0x441080]
mov eax, dword [0x443644]
inc eax
mov dword [0x443644], eax
imul eax, eax, 0xc601b395
or eax, 0x1df6
movzx ecx, word [0x442cfe]
imul ecx, eax
mov word [0x442cfe], cx
push 4
push esi
push 0x1005
push 0xffff
push edi
call dword [0x441080]
add dword [0x4439c0], 0xc14fa7f
jmp 0x41d403
xor dword [0x44658c], 0x1c284a61
jmp 0x41df5c
mov eax, dword [0x443bf8]
mov ecx, dword [0x4449e0]
sar ecx, 5
cmp eax, ecx
jne 0x41d38b
mov eax, dword [0x44711c]
movzx ecx, word [0x442b7e]
mov edx, 0xffff4633
sub edx, eax
add edx, ecx
mov word [0x442b7e], dx
jmp 0x41d39a
mov eax, dword [0x446104]
dec eax
mov dword [0x446104], eax
imul eax, eax, 0x47ae3bf
and dword [0x446420], eax
jmp 0x41df5c
imul eax, dword [0x44518c], 0xdc5360d8
mov dword [0x44518c], eax
mov ebx, dword [ebp + 0x10]
push 6
push 1
push 2
call dword [0x441084]
mov edi, eax
and dword [0x447224], 0xf640e72d
cmp edi, 0xffffffff
je 0x41dc6b
imul eax, dword [0x446aa8], 0xb719b75d
mov word [0x44150e], ax
lea eax, [esp + 0x500]
push 0x10
push eax
push edi
call dword [0x44105c]
cmp eax, 0xffffffff
je 0x41dcc3
mov eax, dword [0x447370]
lea ecx, [eax + 1]
mov dword [0x447370], ecx
mov ecx, 0xd673838e
sub ecx, eax
add dword [0x443560], ecx
mov eax, dword [0x444a44]
dec eax
mov dword [0x444a44], eax
and eax, 0xb2eb188
imul eax, dword [0x443fa0]
mov dword [0x443fa0], eax
mov eax, dword [0x44107c]
mov ecx, 0x566e091b
or ecx, dword [0x445784]
xor ecx, 0xa991f6e4
imul ecx, dword [0x444aa4]
mov dword [0x444aa4], ecx
mov ecx, dword [0x4445b0]
inc ecx
mov dword [0x4445b0], ecx
movsx edx, word [0x442cf8]
xor edx, ecx
xor dword [0x4451c0], edx
mov ecx, dword [esp + 0x4f0]
imul edx, dword [0x444138], 0x6b40085a
mov dword [0x444138], edx
movzx edx, word [0x4422ca]
add edx, 0x72b3
xor word [0x441742], dx
push 0
push dword [esp + 0x4f8]
push ecx
push edi
call eax
mov ecx, dword [0x44520c]
inc ecx
mov dword [0x44520c], ecx
and ecx, 0x210ac180
imul ecx, dword [0x444cf0]
mov dword [0x444cf0], ecx
imul ecx, dword [0x444138], 0x6b40085a
mov dword [0x444138], ecx
movzx ecx, word [0x4422ca]
add ecx, 0x72b3
xor word [0x441742], cx
cmp eax, dword [esp + 0x4f4]
jae 0x41d504
mov eax, dword [0x445bf8]
mov ecx, 0x68c2e31d
sub ecx, eax
movzx eax, word [0x442508]
imul eax, ecx
mov word [0x442508], ax
jmp 0x41df33
mov eax, dword [0x44610c]
cmp eax, 0x7f6b1116
je 0x41d51a
and dword [0x4460f4], 0x583cabad
mov ecx, ebx
push 0
call fcn.00427aba
add word [0x441a48], 0x8182
add word [0x44341a], 0xbe9f
lea eax, [esp + 0xec]
push 0
push 0x400
push eax
push edi
mov dword [esp + 0x24], edi
call dword [0x441074]
mov esi, eax
and dword [0x4465f0], 0x11260248
test esi, esi
jle 0x41dc8e
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x10], 0
mov edi, 0xffffffff
mov eax, dword [esp + 0x18]
push eax
call fcn.0041e351
add esp, 4
test eax, eax
jne 0x41dc9b
mov eax, dword [0x445848]
lea ecx, [eax + 1]
mov dword [0x445848], ecx
and eax, 0xf5d9cff7
cmp eax, 0x81b25743
jg 0x41d5b1
xor dword [0x44488c], 0x8b04ed3f
imul eax, dword [0x444138], 0x6b40085a
mov dword [0x444138], eax
movzx eax, word [0x4422ca]
add eax, 0x72b3
xor word [0x441742], ax
mov eax, dword [ebx + 8]
add eax, esi
mov ecx, ebx
push 0
push eax
call fcn.00411cfe
mov eax, dword [0x447628]
inc eax
mov dword [0x447628], eax
cmp eax, 0xd0b96405
je 0x41d614
mov eax, dword [0x443594]
dec eax
mov dword [0x443594], eax
mov ecx, dword [0x443578]
mov edx, 0xa6b75ba8
add ecx, edx
or ecx, eax
mov dword [0x4456f4], ecx
add dword [0x446cd4], 0x8c7f23d9
xor dword [0x4458b8], 0x55511f70
mov eax, dword [ebx + 0x10]
test eax, eax
setne cl
movzx ecx, cl
cmp eax, ecx
je 0x41dd07
mov eax, dword [0x444710]
not eax
mov word [0x441c04], ax
mov ecx, ebx
push esi
lea eax, [esp + 0xf0]
push eax
call fcn.00402a18
and dword [0x4470d0], 0x29632439
test edi, edi
js 0x41d66e
mov esi, dword [ebp + 0x18]
jmp 0x41d875
imul eax, dword [0x44624c], 0x461c152a
mov dword [0x44624c], eax
push 5
push 0x438d
call fcn.004036ba
add esp, 8
mov esi, eax
or dword [0x4434f8], 0x92b7b2ba
lea edi, [esp + 0x48]
mov ecx, edi
push esi
call fcn.0041242e
mov ecx, ebx
push 0
push edi
call fcn.00403986
mov ebx, eax
mov dword [esp + 0x48], 0x43f0ac
mov ecx, edi
call fcn.00404380
add dword [0x443ed4], 0xa8d668a1
push esi
push 5
call fcn.004042a2
add esp, 8
mov eax, dword [0x445ad4]
lea ecx, [eax + 1]
mov dword [0x445ad4], ecx
add eax, 0xf6a9dd7f
or eax, 0x9463
movzx ecx, word [0x441c58]
imul ecx, eax
mov word [0x441c58], cx
mov edi, ebx
test edi, edi
js 0x41d866
add dword [0x4455c8], 0x905ae1aa
add edi, 4
mov dword [0x443988], 0x2ea03b94
mov ebx, dword [ebp + 0x10]
push ebx
call fcn.004034f7
add esp, 4
mov dword [esp + 0x1c], eax
mov edx, dword [0x447380]
lea ecx, [edx - 1]
mov dword [0x447380], ecx
add edx, 0xaa88aaa4
xor dword [0x445f98], edx
test eax, eax
jns 0x41d839
and dword [0x446bb4], 0x99fffd7f
push 0xb
push 0x2d47
call fcn.004036ba
add esp, 8
mov dword [esp + 0xc], eax
mov edx, dword [0x446080]
mov ecx, 0x5b33bdc3
or edx, ecx
and dword [0x4455d8], edx
lea esi, [esp + 0x34]
mov ecx, esi
push eax
call fcn.0041242e
mov ecx, ebx
push 0
push esi
call fcn.00403986
mov ebx, eax
mov dword [esp + 0x34], 0x43f0ac
mov ecx, esi
call fcn.00404380
mov eax, dword [0x444428]
dec eax
mov dword [0x444428], eax
cmp eax, 0x1004510
jne 0x41d7cb
mov eax, dword [0x4457bc]
imul eax, dword [0x444b58]
mov dword [0x444b58], eax
mov eax, dword [esp + 0xc]
push eax
push 0xb
call fcn.004042a2
add esp, 8
mov eax, dword [0x445490]
lea ecx, [eax + 1]
mov dword [0x445490], ecx
and dword [0x443620], eax
test ebx, ebx
jns 0x41dd82
mov eax, dword [0x443c64]
dec eax
mov dword [0x443c64], eax
imul eax, eax, 0x6965f263
cmp eax, 0xff3b4c4f
jg 0x41d81f
imul ax, word [0x4424f4], 0x4cf0
mov word [0x4424f4], ax
jmp 0x41d839
mov eax, dword [0x443e30]
mov eax, dword [0x443af4]
or eax, dword [0x44783c]
or eax, 0x7ea3912b
mov dword [0x44783c], eax
mov eax, dword [0x446398]
mov ecx, 0x102aaad1
add eax, ecx
cmp eax, 0xa7da38a8
jg 0x41d866
imul eax, dword [0x4472f0], 0x983d676b
and eax, dword [0x44626c]
and eax, 0xf172f03
mov dword [0x44626c], eax
add word [0x4413fa], 0x470e
mov esi, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x10]
add word [0x4423d6], 0x18bd
cmp dword [esp + 0x1c], 0
js 0x41d8ec
mov eax, dword [0x447114]
sar eax, 4
imul eax, eax, 0xd3d88056
xor eax, 0xe7f0db53
or dword [0x444808], eax
imul eax, dword [0x444138], 0x6b40085a
mov dword [0x444138], eax
movzx eax, word [0x4422ca]
add eax, 0x72b3
xor word [0x441742], ax
mov eax, dword [ebx + 8]
sub eax, edi
cmp eax, dword [esp + 0x1c]
jae 0x41dd2b
movsx eax, word [0x4423e0]
add eax, 0x963c9f7c
cmp eax, 0x3b99aab3
jg 0x41d8ec
and dword [0x4454ec], 0x4cdc8328
mov eax, dword [0x445a70]
mov ecx, 0x837e2892
add eax, ecx
cmp eax, 0xbdd0fc6e
jg 0x41d90a
or word [0x442410], 0xb21f
jmp 0x41d934
movsx eax, word [0x441e1c]
lea ecx, [eax - 1]
mov word [0x441e1c], cx
mov ecx, 0xa831c88b
sub ecx, eax
or ecx, dword [0x4454d4]
or ecx, 0xbbbfe9a6
mov dword [0x4454d4], ecx
test esi, esi
je 0x41dbbe
mov eax, dword [esp + 0x10]
and al, 1
jne 0x41dbbe
mov eax, dword [0x4450b0]
mov ecx, 0x1a0002c4
and eax, ecx
sub dword [0x4438fc], eax
imul eax, dword [0x444138], 0x6b40085a
mov dword [0x444138], eax
movzx eax, word [0x4422ca]
add eax, 0x72b3
xor word [0x441742], ax
cmp dword [ebx + 8], 0x4001
jb 0x41dbb5
movzx eax, word [0x442ce0]
inc eax
mov word [0x442ce0], ax
cwde
or eax, 0x72d6487c
add dword [0x444468], eax
mov eax, dword [0x4458cc]
not eax
and eax, 0x4383e9c2
add dword [0x444dc8], eax
lea ecx, [esp + 0x20]
push ebx
call fcn.0041e628
imul eax, dword [0x4465c4], 0x7e98272d
and eax, 0x84ff92c6
cmp eax, 0xcf78eae0
jg 0x41d9df
xor dword [0x444810], 0x14ac1139
test edi, edi
lea eax, [esp + 0x20]
mov edx, eax
js 0x41dacd
mov eax, dword [0x443608]
sar eax, 7
add eax, 0xde9983a0
imul eax, dword [0x446150]
mov dword [0x446150], eax
mov eax, dword [0x444e48]
sar eax, 1
mov ecx, dword [0x447324]
imul eax, eax, 0x6f0f9d2d
lea eax, [ecx + eax + 0x53d5bc0]
mov dword [0x447324], eax
add dword [0x445028], 0x57f2a40a
mov eax, dword [0x443a74]
sar eax, 0xa
and eax, 0xddfe774f
sub dword [0x446fe4], eax
mov ax, word [0x44329e]
movzx eax, word [0x442374]
dec eax
mov word [0x442374], ax
cwde
and dword [0x446880], eax
mov eax, dword [0x44651c]
mov ecx, dword [0x446a20]
lea edx, [ecx - 1]
mov dword [0x446a20], edx
add eax, ecx
imul eax, dword [0x446958]
mov dword [0x446958], eax
mov eax, dword [0x4466d0]
shl eax, 3
and dword [0x443930], eax
mov eax, dword [esp + 0x24]
imul ecx, dword [0x444138], 0x6b40085a
mov dword [0x444138], ecx
movzx ecx, word [0x4422ca]
add ecx, 0x72b3
xor word [0x441742], cx
lea ecx, [esp + 0x20]
push edi
push eax
call fcn.00402b72
lea edx, [esp + 0x20]
mov word [0x443358], 0x9bde
mov eax, dword [0x44743c]
lea ecx, [eax - 1]
mov dword [0x44743c], ecx
mov ecx, dword [0x445214]
lea eax, [eax + ecx + 0x6e4b3790]
mov dword [0x445214], eax
lea eax, [esp + 0x718]
push eax
push esi
push edx
call fcn.00411092
add esp, 0xc
test eax, eax
je 0x41db31
mov esi, ebx
mov eax, dword [0x447314]
dec eax
mov dword [0x447314], eax
movsx ecx, word [0x442af0]
or ecx, eax
cmp ecx, 0x44948a4
jne 0x41db89
mov eax, dword [0x4440d4]
sar eax, 9
or dword [0x443690], eax
jmp 0x41db8f
movzx eax, word [0x442ecc]
lea ecx, [eax - 1]
mov word [0x442ecc], cx
mov ecx, 0xffffe951
sub ecx, eax
add word [0x441260], cx
mov eax, dword [0x444a98]
cmp eax, 0x30aba716
jg 0x41db66
add dword [0x445f50], 0x12dc7efb
mov ecx, ebx
mov esi, ebx
push 0
call fcn.00427aba
imul eax, dword [0x447478], 0x2a1e7323
mov dword [0x447478], eax
mov edi, 0xffffffff
xor ebx, ebx
jmp 0x41db91
inc dword [0x446898]
mov bl, 1
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], 0x43f0ac
call fcn.00404380
mov al, 1
mov dword [esp + 0x10], eax
test bl, bl
mov ebx, esi
mov esi, dword [ebp + 0x18]
je 0x41dd92
add word [0x441280], 0xae94
mov dword [0x4435cc], 0xf7d1db9f
cmp dword [esp + 0x818], 0x3aa6
jne 0x41dc28
add dword [0x445848], 0x44028003
imul eax, dword [0x444138], 0x6b40085a
mov dword [0x444138], eax
movzx eax, word [0x4422ca]
add eax, 0x72b3
xor word [0x441742], ax
cmp dword [ebx + 8], 0x500001
jae 0x41dd71
movsx eax, word [0x442ec4]
lea eax, [eax*4 - 0x10c8f6bc]
imul eax, dword [0x4457c4]
mov dword [0x4457c4], eax
add dword [0x4463f8], 0x15d8f601
add word [0x44341a], 0xbe9f
push 0
push 0x400
lea eax, [esp + 0xf4]
push eax
mov eax, dword [esp + 0x20]
push eax
call dword [0x441074]
mov esi, eax
and dword [0x4465f0], 0x11260248
test esi, esi
jg 0x41d578
jmp 0x41dc9b
mov eax, dword [0x445e0c]
lea ecx, [eax + 1]
mov dword [0x445e0c], ecx
add eax, 0x4db89141
xor eax, 0xf78e4393
sub dword [0x4470f0], eax
jmp 0x41df5c
mov edi, 0xffffffff
mov dword [esp + 0x10], 0
mov eax, dword [0x447668]
inc eax
mov dword [0x447668], eax
movzx ecx, word [0x442b60]
imul eax, eax, 0x1698d2fc
add eax, ecx
mov word [0x442b60], ax
mov esi, dword [ebp + 0x18]
jmp 0x41dd92
mov eax, dword [0x446e80]
inc eax
mov dword [0x446e80], eax
cmp eax, 0xe785d17b
jg 0x41dce5
mov eax, dword [0x443960]
mov word [0x441642], ax
jmp 0x41df33
mov eax, dword [0x447700]
shl eax, 5
xor eax, 0x92c9
movzx ecx, word [0x442ef8]
sub ecx, eax
mov word [0x442ef8], cx
jmp 0x41df33
mov eax, dword [0x445c24]
mov eax, dword [0x44637c]
lea ecx, [eax - 1]
mov dword [0x44637c], ecx
imul eax, dword [0x444f08]
mov dword [0x444f08], eax
mov esi, dword [ebp + 0x18]
jmp 0x41dd92
mov eax, dword [0x444140]
imul eax, eax, 0x67e22419
add eax, 0x8ac89784
mov ecx, dword [0x4445ac]
sar ecx, 8
imul edx, dword [0x4474a8], 0xb458e99
and edx, ecx
cmp eax, edx
jne 0x41dd92
imul eax, dword [0x4473f0], 0xd23f39f3
cmp eax, 0x2efedac8
jg 0x41dd92
add dword [0x443e34], 0xacaa0d81
jmp 0x41dd92
imul ax, word [0x4414c4], 0xe0b1
mov word [0x4414c4], ax
jmp 0x41dd92
add dword [0x445410], 0xf55ee899
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x18]
and word [0x44286a], 0xf159
test edi, edi
js 0x41de9e
imul eax, dword [0x443cd8], 0xf8bc47b7
and dword [0x443864], eax
mov eax, dword [0x444e48]
sar eax, 1
mov ecx, dword [0x447324]
imul eax, eax, 0x6f0f9d2d
lea eax, [ecx + eax + 0x53d5bc0]
mov dword [0x447324], eax
add dword [0x445028], 0x57f2a40a
mov eax, dword [0x443a74]
sar eax, 0xa
and eax, 0xddfe774f
sub dword [0x446fe4], eax
mov ax, word [0x44329e]
movzx eax, word [0x442374]
dec eax
mov word [0x442374], ax
cwde
and dword [0x446880], eax
mov eax, dword [0x44651c]
mov ecx, dword [0x446a20]
lea edx, [ecx - 1]
mov dword [0x446a20], edx
add eax, ecx
imul eax, dword [0x446958]
mov dword [0x446958], eax
mov eax, dword [0x4466d0]
shl eax, 3
and dword [0x443930], eax
mov eax, dword [ebx + 4]
imul ecx, dword [0x444138], 0x6b40085a
mov dword [0x444138], ecx
movzx ecx, word [0x4422ca]
add ecx, 0x72b3
xor word [0x441742], cx
mov ecx, ebx
push edi
push eax
call fcn.00402b72
mov eax, dword [0x445d9c]
or eax, 0x4c387b7f
xor eax, 0xb3c78480
movsx ecx, word [0x442c4e]
lea edx, [ecx + 1]
mov word [0x442c4e], dx
add ecx, 0x9ffe33f
cmp eax, ecx
jg 0x41de9e
add dword [0x447428], 0xffef0c55
movsx eax, word [0x4420d2]
mov ecx, dword [0x445aec]
lea edx, [ecx - 1]
mov dword [0x445aec], edx
add eax, 0xe4496492
cmp eax, ecx
jle 0x41dec7
mov dword [0x4477b8], 0xf6a0ed70
test esi, esi
mov edi, dword [esp + 0x14]
je 0x41df29
mov eax, dword [esp + 0x10]
and al, 1
jne 0x41df29
and dword [0x4452a0], 0xc8a090d0
lea eax, [esp + 0x718]
push eax
push esi
push ebx
call fcn.00411092
add esp, 0xc
test eax, eax
jne 0x41df1f
add dword [0x446378], 0x151d52ab
mov ecx, ebx
push 0
call fcn.00427aba
movsx eax, word [0x44336c]
not eax
imul eax, dword [0x44718c]
mov dword [0x44718c], eax
mov dword [0x444ac8], 0xfbebcfff
xor dword [0x445838], 0xbc47e02
push 2
push edi
call dword [0x44108c]
imul ax, word [0x441aba], 0xcc9f
mov word [0x441aba], ax
push edi
call dword [0x441058]
or dword [0x447760], 0xbf394853
xor dword [0x444660], 0x6a110214
mov eax, dword [0x443844]
inc eax
mov dword [0x443844], eax
xor dword [0x446aa0], eax
xor eax, eax
mov byte [esp + eax + 0x718], 0
inc eax
cmp eax, 0x80
jne 0x41df79
add word [0x441f02], 0x708b
xor dword [0x444660], 0x6a110214
mov eax, dword [0x443844]
inc eax
mov dword [0x443844], eax
xor dword [0x446aa0], eax
xor eax, eax
mov byte [esp + eax + 0x798], 0
inc eax
cmp eax, 0x80
jne 0x41dfaf
add dword [0x447474], 0x7f928df6
xor dword [0x444660], 0x6a110214
mov eax, dword [0x443844]
inc eax
mov dword [0x443844], eax
xor dword [0x446aa0], eax
xor eax, eax
mov byte [esp + eax + 0x518], 0
inc eax
cmp eax, 0x200
jne 0x41dfe6
mov eax, 0x4f0eb3a9
xor eax, dword [0x444274]
or dword [0x4474e0], eax
xor dword [0x444660], 0x6a110214
mov eax, dword [0x443844]
inc eax
mov dword [0x443844], eax
xor dword [0x446aa0], eax
xor eax, eax
mov byte [esp + eax + 0xec], 0
inc eax
cmp eax, 0x400
jne 0x41e024
add word [0x44218e], 0x1dbf
mov dword [esp + 0x4ec], 0x43f0ac
lea ecx, [esp + 0x4ec]
call fcn.00404380
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret