Function at 0x4236e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
imul eax, dword [0x445c28], 0x6af27ef
sub esp, 0x770
mov dword [0x445c28], eax
and dword [0x44d9a0], 0x6e7c45bc
or dword [0x444728], 0xffefbf3e
and dword [0x449c8c], 0xc103419d
mov eax, dword [0x43c670]
sar eax, 1
add eax, 0xbcf146ca
or dword [0x439168], eax
dec dword [0x44c960]
mov eax, dword [0x44c960]
movsx ecx, word [0x450ce4]
sub ecx, eax
add dword [0x439df0], ecx
lea ecx, [ebp - 0x24]
call fcn.0040cdb0
mov dword [0x43d8e4], 0x7d5251aa
mov ecx, dword [0x448b24]
mov eax, dword [0x444a38]
inc dword [0x444a38]
shl ecx, 8
add eax, ecx
cmp eax, 0xe7fbf7cb
jne 0x42377b
or dword [0x43b3b4], 0x75cf9bae
mov dword [0x43b4c8], 0x9babb6e1
and dword [0x437438], 0x26d6f19b
mov ax, word [0x45c21c]
movsx ecx, ax
mov eax, dword [0x44028c]
sub ecx, eax
mov edx, dword [0x43fd1c]
mov eax, dword [0x441e70]
or edx, ecx
mov ecx, dword [0x448ed0]
not eax
inc dword [0x448ed0]
and ecx, eax
xor ecx, 0x8771aafb
cmp ecx, edx
jne 0x4237f8
movsx eax, word [0x456db0]
not eax
imul ecx, eax, 0xe98ed138
movsx eax, word [0x453c98]
sar eax, 8
xor eax, 0x15550dbf
or ecx, 0x99f79f4e
cmp eax, ecx
jle 0x4237f8
mov eax, dword [0x443798]
mov eax, dword [0x437a28]
add dword [0x43df00], 0xbaec7a12
push ebx
push esi
push 0
call fcn.0040a560
mov ebx, dword [ebp + 8]
add eax, 0x258
mov ecx, edx
mov dword [0x44dec4], 0x10002443
adc ecx, 0
mov byte [ebp - 0x370], 0
xor dword [0x44ded8], 0x2af7324e
push ebx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], ecx
call fcn.00406f50
imul ecx, dword [0x447364], 0x92e82aae
mov esi, eax
add esp, 8
mov dword [0x447364], ecx
cmp esi, 0x7f
jg 0x424758
imul ecx, dword [0x44c398], 0x34e91c01
xor edx, edx
push edi
mov dword [0x44c398], ecx
test esi, esi
js 0x42393c
mov ecx, ebx
lea eax, [ebp - 0x170]
sub ecx, eax
add dword [0x44bcfc], 0x2e6e0ae
lea eax, [ecx + edx]
mov al, byte [ebp + eax - 0x170]
mov byte [ebp + edx - 0x170], al
movzx eax, word [0x45928c]
or eax, 0xc0806500
cmp byte [ebp + edx - 0x170], 0x2f
mov word [0x45928c], ax
je 0x4238d3
movzx eax, word [0x45bdda]
inc edx
imul eax, eax, 0x612aa840
mov word [0x45bdda], ax
cmp edx, esi
jle 0x423882
jmp 0x42393c
add dword [0x43bcac], 0xbf7952e4
mov byte [ebp + edx - 0x170], 0
and dword [0x441660], 0xa1869734
cmp edx, esi
jg 0x423932
lea edi, [ebp - 0x370]
sub edi, edx
jmp 0x423900
mov ax, word [0x456574]
movsx ecx, ax
mov eax, dword [0x44185c]
sub ecx, eax
mov word [0x456574], cx
mov al, byte [edx + ebx]
mov byte [edi + edx], al
inc edx
mov eax, dword [0x441ba8]
or eax, 0xf739bbff
xor dword [0x43c158], eax
cmp edx, esi
jle 0x423900
xor dword [0x446024], 0x6913c21c
mov eax, dword [0x438110]
mov edi, dword [ebp + 0xc]
xor eax, 0xee799d8d
add dword [0x43e204], eax
dec dword [0x438110]
push edi
call fcn.00406f50
mov esi, eax
lea eax, [ebp - 0x370]
push eax
call fcn.00406f50
add esi, eax
add esp, 8
cmp esi, 0x1ff
ja 0x424757
movzx eax, word [0x44f78a]
add eax, 0x2964b55a
mov word [0x44f78a], ax
lea eax, [ebp - 0x370]
push edi
push eax
call fcn.0042c560
movzx eax, word [0x45bbd4]
xor edi, edi
and eax, 0x4e1d7ffe
mov dword [ebp - 4], edi
mov word [0x45bbd4], ax
inc dword [0x44e064]
mov eax, dword [0x44e064]
mov ecx, dword [0x439e38]
not ecx
sub ecx, eax
movzx eax, word [0x4526a8]
add eax, 0x6a828691
add eax, ecx
push 5
mov word [0x4526a8], ax
push 0x3bc6
call fcn.00423310
or dword [0x43c348], 0x3ffe1980
lea ecx, [ebp - 0x24]
add esp, 0x10
mov esi, eax
push esi
call fcn.0041f6e0
add dword [0x43c93c], 0xa403909
push esi
push 5
call fcn.0041cb10
mov ebx, dword [ebp + 0x10]
add esp, 8
add dword [0x43ec78], 0x1da91584
mov ecx, ebx
call fcn.0041eb80
test eax, eax
je 0x423bd6
mov eax, dword [0x43d2c4]
inc dword [0x43d2c4]
cmp eax, 0x73ef8faf
jge 0x423a52
movzx eax, word [0x4584fe]
add eax, 0x6e0d5264
mov word [0x4584fe], ax
push 0xc
push 0x3015
call fcn.00423310
mov cx, word [0x454f34]
add esp, 8
mov edx, dword [0x441bbc]
mov edi, eax
movsx ecx, cx
imul edx, ecx
lea ecx, [ebp - 0x78]
push edi
mov dword [0x441bbc], edx
call fcn.0042c450
push 0
lea eax, [ebp - 0x78]
mov ecx, ebx
push eax
call fcn.0041dc70
lea ecx, [ebp - 0x78]
mov esi, eax
call fcn.00410e60
mov eax, 0xfffffeff
push edi
mov word [0x452348], ax
push 0xc
call fcn.0041cb10
mov ecx, dword [0x435fb4]
add esp, 8
not ecx
sub ecx, 0x2deae4af
mov dword [0x43f528], ecx
test esi, esi
jne 0x423bc2
movzx eax, word [0x454394]
mov edi, 1
add eax, 0x44b07767
mov dword [ebp - 4], edi
mov word [0x454394], ax
mov ecx, dword [0x441374]
mov eax, dword [0x43d9a4]
sar ecx, 8
imul eax, ecx
mov ecx, ebx
push 0xb
push esi
mov dword [0x43d9a4], eax
call fcn.0041f770
push eax
mov ecx, ebx
call fcn.0040c450
movsx eax, word [0x450d0c]
and eax, 0xae8fce09
cmp eax, 0x40e98191
jle 0x423b35
movzx eax, word [0x45a030]
and eax, 0xbfcc377b
mov word [0x45a030], ax
push 6
push 0x1be
call fcn.00423310
mov edx, dword [0x44a1cc]
add esp, 8
mov ecx, dword [0x448d6c]
mov esi, eax
add ecx, edx
movzx edx, word [0x454672]
imul edx, ecx
lea ecx, [ebp - 0x24]
push esi
mov word [0x454672], dx
dec dword [0x448d6c]
call fcn.0041f6e0
inc dword [0x43f1c0]
mov eax, dword [0x43f1c0]
mov ecx, dword [0x44b4f0]
not ecx
imul ecx, eax
cmp ecx, 0x8044b123
jg 0x423b9c
add dword [0x43b78c], 0x8fbeb0ed
push esi
push 6
call fcn.0041cb10
mov eax, dword [0x43af6c]
add esp, 8
movsx ecx, word [0x45ba16]
add eax, eax
or ecx, eax
shl ecx, 6
or dword [0x438f7c], ecx
jmp 0x423bc4
xor edi, edi
movzx eax, word [0x4529e2]
add eax, 0x7689d995
mov word [0x4529e2], ax
dec dword [0x44ac7c]
mov ecx, dword [0x44ac7c]
imul edx, dword [0x43b278], 0xb71ee08a
mov eax, dword [0x44203c]
xor eax, ecx
and edx, 0xc3c19964
cmp edx, eax
jle 0x423c09
add dword [0x43af5c], 0xcf4240b4
jmp 0x423c1b
movzx eax, word [0x457580]
add eax, 0x6896e27b
mov word [0x457580], ax
lea eax, [ebp - 0x370]
push eax
lea ecx, [ebp - 0x50]
call fcn.00401050
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x24]
call fcn.004267f0
lea ecx, [ebp - 0x50]
call fcn.004050c0
and dword [0x445988], 0xebbea700
push 0x32
push 0x1aef
call fcn.00423310
add esp, 8
mov esi, eax
cmp dword [0x44e8c4], 0x2c8c6bc1
jle 0x423c6f
add dword [0x437320], 0xec13b89f
push esi
lea ecx, [ebp - 0xf0]
call fcn.00401050
lea eax, [ebp - 0xf0]
push eax
lea ecx, [ebp - 0x24]
call fcn.004267f0
lea ecx, [ebp - 0xf0]
call fcn.004050c0
mov eax, dword [0x4480cc]
and eax, 0x3e806350
cmp eax, 0xdd4e8b14
je 0x423cbd
mov ax, word [0x457b7a]
mov ecx, dword [0x43920c]
cwde
imul ecx, eax
mov word [0x457b7a], cx
push esi
push 0x32
call fcn.0041cb10
mov eax, dword [0x440c34]
lea ecx, [ebp - 0xa0]
and eax, 0x2f9db036
add esp, 8
mov word [0x459a6c], ax
lea eax, [ebp - 0x170]
inc dword [0x440c34]
push eax
call fcn.00401050
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x24]
call fcn.004267f0
lea ecx, [ebp - 0xa0]
call fcn.004050c0
mov eax, dword [0x44b7ec]
sar eax, 1
xor eax, 0xb43d3de5
and dword [0x444864], eax
test edi, edi
je 0x423e61
imul eax, dword [0x447cc0], 0x19587aa4
push 0x44
push 0x2a0a
mov dword [0x447cc0], eax
call fcn.00423310
add dword [0x437200], 0x386ffb6b
lea ecx, [ebp - 0xdc]
add esp, 8
mov esi, eax
push esi
call fcn.00401050
lea eax, [ebp - 0xdc]
push eax
lea ecx, [ebp - 0x24]
call fcn.004267f0
lea ecx, [ebp - 0xdc]
call fcn.004050c0
add dword [0x43e220], 0x63876484
push 3
push 0x1d8c
call fcn.00423310
add dword [0x43b948], 0x7cb4ff4f
mov edi, eax
push esi
push 0x44
call fcn.0041cb10
add dword [0x435e08], 0xf60fac23
add esp, 0x10
mov ecx, ebx
call fcn.0041eb80
push eax
lea eax, [ebp - 0x770]
push edi
push eax
call fcn.0041db70
mov ecx, dword [0x4359e4]
movzx eax, word [0x4564a6]
xor ecx, 0x277de382
add eax, ecx
push edi
mov word [0x4564a6], ax
push 3
call fcn.0041cb10
add esp, 0x14
mov dword [0x4427a4], 0x5f79fdcb
lea eax, [ebp - 0x770]
lea ecx, [ebp - 0xc8]
push eax
call fcn.00401050
lea eax, [ebp - 0xc8]
push eax
lea ecx, [ebp - 0x24]
call fcn.004267f0
lea ecx, [ebp - 0xc8]
call fcn.004050c0
inc dword [0x439838]
mov eax, dword [0x439838]
mov ecx, dword [0x448e6c]
inc dword [0x448e6c]
add ecx, 0xd2a4043
mov edi, dword [ebp - 4]
or ecx, eax
cmp ecx, 0xdfc5b1fd
jg 0x423e57
movsx eax, word [0x45a122]
not eax
and dword [0x44170c], eax
jmp 0x423e61
xor dword [0x44039c], 0xd33013a4
imul ecx, dword [0x44e860], 0xe8634e8b
mov eax, dword [0x43ab24]
push 5
push 0x246f
and ecx, 0x2f1f0a61
imul eax, ecx
mov dword [0x43ab24], eax
call fcn.00423310
movzx ecx, word [0x45bf94]
add esp, 8
add ecx, 0x6bf7aad8
mov esi, eax
mov word [0x45bf94], cx
lea ecx, [ebp - 0x64]
push esi
call fcn.00401050
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x24]
call fcn.004267f0
lea ecx, [ebp - 0x64]
call fcn.004050c0
mov eax, dword [0x43a0b0]
inc dword [0x43a0b0]
cmp eax, 0x6785bdb8
jne 0x423ee8
mov eax, dword [0x445aa8]
or eax, 0x295cee95
sub dword [0x440954], eax
inc dword [0x445aa8]
push esi
push 5
call fcn.0041cb10
movsx eax, word [0x45b88a]
add esp, 8
not eax
or eax, 0xa43ab11c
cmp eax, 0x10154815
jl 0x423f1f
cmp dword [0x4411e8], 0x9a0d2873
je 0x423f1f
dec dword [0x44bad0]
mov eax, dword [0x43cdac]
test edi, edi
je 0x423f2c
push ebx
lea ecx, [ebp - 0x24]
call fcn.004267f0
and dword [0x44a418], 0xf23ff6ff
push 6
push 1
push 2
call dword [0x45cba0]
mov ecx, dword [0x43fc20]
mov edx, 0xfc136ac2
sub edx, ecx
mov edi, eax
and edx, 0x506cf4ab
mov dword [ebp - 0xc], edi
sub dword [0x43cbb0], edx
cmp edi, 0xffffffff
jne 0x423fd9
mov eax, dword [0x44cd94]
sar eax, 2
cmp eax, 0xc93c5f9a
jge 0x423fac
inc word [0x459ecc]
mov ax, word [0x459ecc]
cwde
imul eax, eax, 0x5996e606
cmp eax, 0x2970194
jg 0x424757
xor dword [0x44b264], 0xeb417d8a
lea ecx, [ebp - 0x24]
pop edi
call fcn.004050c0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsx ecx, word [0x454fe8]
mov eax, dword [0x43b478]
xor ecx, 0xfa79ff9f
or eax, ecx
lea ecx, [ebp - 0x24]
or eax, 0xba49758d
pop edi
mov dword [0x43b478], eax
call fcn.004050c0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
dec word [0x451bd2]
mov ecx, 0x4c7aca15
mov ax, word [0x451bd2]
cwde
sub ecx, eax
imul eax, dword [0x437580], 0xf098c094
dec dword [0x437580]
xor ecx, 0xfad86170
or eax, 0xcdfdefd1
cmp ecx, eax
jle 0x424023
mov eax, dword [0x43e6dc]
or eax, 0xd4da9f6
sub dword [0x445e18], eax
dec dword [0x43e6dc]
cmp dword [ebp + 0x14], 0
je 0x42408d
movsx eax, word [0x450248]
sub eax, 0x2ca41604
or eax, 0x8dfaa44e
add dword [0x448030], eax
lea eax, [ebp + 0x14]
push 4
push eax
push 0x1006
push 0xffff
push edi
call dword [0x45cb9c]
mov eax, dword [0x44324c]
sub eax, 0x17e9464a
or eax, 0x13517f2d
cmp eax, 0x5293c835
je 0x42408d
dec dword [0x44d8d4]
mov eax, dword [0x44d8d4]
and eax, 0xf64bed97
xor eax, 0x7598201e
add eax, dword [0x440880]
mov dword [0x440880], eax
movzx eax, word [0x456a9a]
imul eax, eax, 0xaa19e75a
mov word [0x456a9a], ax
lea eax, [ebp - 0x170]
push eax
call dword [0x45cb7c]
mov ecx, dword [0x4364ac]
mov esi, eax
mov edx, dword [0x44d730]
not ecx
imul ecx, ecx, 0x398b9d8a
add ecx, 0x2ff4d57c
imul edx, ecx
mov dword [0x44d730], edx
test esi, esi
je 0x424757
mov eax, dword [0x43e698]
or eax, 0xeb1d8b2a
cmp eax, 0xe1de5304
jle 0x4240f8
mov ax, word [0x45421e]
cwde
or dword [0x4427a4], eax
mov eax, 2
mov word [ebp - 0x3c], ax
movsx eax, word [0x454a74]
sar eax, 6
or eax, 0x42e68a9d
cmp eax, 0x140c4005
jle 0x424127
mov eax, dword [0x4461c4]
xor eax, dword [0x438ac4]
mov dword [0x438ac4], eax
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
push dword [eax]
call dword [0x45cb88]
push eax
call dword [0x45cb84]
mov dword [ebp - 0x38], eax
movzx eax, word [0x459d14]
or eax, 0x3da211cc
mov word [0x459d14], ax
push 0x50
call dword [0x45cb80]
mov word [ebp - 0x3a], ax
lea eax, [ebp - 0x3c]
add dword [0x44e6cc], 0x44c9682c
push 0x10
push eax
push edi
call dword [0x45cb78]
cmp eax, 0xffffffff
jne 0x4241a8
inc dword [0x442a2c]
mov eax, dword [0x442a2c]
movzx ecx, word [0x45048e]
imul ecx, eax
pop edi
imul eax, ecx, 0x55b9b3da
lea ecx, [ebp - 0x24]
mov word [0x45048e], ax
call fcn.004050c0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
add dword [0x448d04], 0x78812dd8
lea ecx, [ebp - 0x24]
push 0
call fcn.0041eb80
push eax
lea ecx, [ebp - 0x24]
call fcn.00424770
push eax
push edi
call dword [0x45cb98]
mov cx, word [0x45b974]
mov esi, eax
mov edx, dword [0x44a164]
movsx ecx, cx
imul edx, ecx
lea ecx, [ebp - 0x24]
mov word [0x45b974], dx
call fcn.0041eb80
cmp esi, eax
jae 0x42420e
add dword [0x44c3f4], 0xaf716c1f
lea ecx, [ebp - 0x24]
pop edi
call fcn.004050c0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x43ef38]
sub ecx, dword [0x44d798]
movzx eax, word [0x459d40]
or ecx, 0x78075b81
add eax, ecx
mov ecx, ebx
mov word [0x459d40], ax
inc dword [0x44d798]
call fcn.0041e160
mov ecx, dword [0x437cc8]
or edi, 0xffffffff
movzx eax, word [0x450e12]
and ecx, 0xb5a82239
or eax, ecx
mov dword [ebp - 4], edi
mov word [0x450e12], ax
or esi, edi
movsx eax, word [0x45838e]
and eax, 0xffda09b5
mov dword [ebp - 0x10], esi
shl eax, 9
xor eax, 0x87041d21
cmp eax, 0x74d94a19
jne 0x42428f
movzx eax, word [0x450642]
add eax, 0x1004058d
mov word [0x450642], ax
mov eax, dword [0x4390a0]
dec eax
push 0
mov dword [0x4390a0], eax
or dword [0x439b3c], eax
lea eax, [ebp - 0x770]
push 0x400
push eax
push dword [ebp - 0xc]
call dword [0x45cb90]
mov edx, dword [0x447530]
dec edx
mov dword [ebp - 8], eax
mov dword [0x447530], edx
and edx, 0x8dc746c4
movzx ecx, word [0x4544d8]
or edx, ecx
mov word [0x4544d8], dx
test eax, eax
jle 0x42468a
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
call fcn.00427b40
add esp, 8
test eax, eax
jne 0x42468a
mov ax, word [0x455a34]
mov ecx, dword [0x44755c]
cwde
and ecx, eax
xor ecx, 0xd17bc1cb
or dword [0x4438d0], ecx
mov ecx, ebx
inc word [0x455a34]
push 0
call fcn.0041eb80
add eax, dword [ebp - 8]
mov ecx, ebx
push eax
call fcn.0040c690
add dword [0x441ec4], 0x9a5b9c62
mov ecx, ebx
call fcn.0041ee80
test eax, eax
je 0x42468a
movsx eax, word [0x452d82]
movzx ecx, word [0x455ed8]
add eax, 0xb89e4e50
push dword [ebp - 8]
imul ecx, eax
lea eax, [ebp - 0x770]
push eax
mov word [0x455ed8], cx
mov ecx, ebx
call fcn.004268f0
inc dword [0x44ce08]
mov ecx, dword [0x44ce08]
mov eax, dword [0x442718]
add eax, ecx
mov ecx, dword [0x437a90]
or ecx, eax
movzx eax, word [0x453a12]
and eax, ecx
mov word [0x453a12], ax
dec dword [0x437a90]
inc dword [0x442718]
test edi, edi
jns 0x42458d
mov eax, dword [0x4366a4]
mov ecx, 0xe30e3e
sub ecx, eax
and ecx, 0x94fa2567
or dword [0x441088], ecx
push 5
push 0x246f
call fcn.00423310
mov edx, dword [0x446400]
add esp, 8
mov ecx, dword [0x441418]
mov esi, eax
add ecx, 0x17843cc
add ecx, edx
mov dword [0x441418], ecx
lea ecx, [ebp - 0x8c]
push esi
call fcn.0042c450
push 0
lea eax, [ebp - 0x8c]
mov ecx, ebx
push eax
call fcn.0041dc70
mov edi, eax
lea ecx, [ebp - 0x8c]
mov dword [ebp - 4], edi
call fcn.00410e60
mov ecx, dword [0x443f78]
sar ecx, 5
xor ecx, 0x8c5b61d9
or dword [0x44c3dc], ecx
push esi
push 5
call fcn.0041cb10
add esp, 8
mov eax, 0x2a3e
mov word [0x45876a], ax
test edi, edi
js 0x424580
xor dword [0x447ac4], 0x437b76e
add edi, 4
add dword [0x44541c], 0xc848a59e
push ebx
mov dword [ebp - 4], edi
call fcn.004260f0
movsx ecx, word [0x44fd56]
add esp, 4
mov dword [ebp - 0x10], eax
cmp ecx, 0x84214389
jge 0x424497
or dword [0x435b9c], 0x8449ce65
test eax, eax
jns 0x424545
movsx eax, word [0x459074]
xor eax, 0xa9bdeba8
sub dword [0x4406b8], eax
inc word [0x459074]
push 0xb
push 0x9dd
call fcn.00423310
mov cx, word [0x45a4ae]
add esp, 8
movsx ecx, cx
mov edi, eax
add dword [0x43add4], ecx
lea ecx, [ebp - 0xb4]
push edi
call fcn.0042c450
push 0
lea eax, [ebp - 0xb4]
mov ecx, ebx
push eax
call fcn.0041dc70
lea ecx, [ebp - 0xb4]
mov esi, eax
call fcn.00410e60
and dword [0x43f510], 0xff06f5bd
push edi
push 0xb
call fcn.0041cb10
add esp, 8
mov dword [0x437fe0], 0x5812aca6
test esi, esi
jns 0x42468a
mov eax, dword [0x43c080]
mov ecx, 0x27313298
mov edi, dword [ebp - 4]
sub ecx, eax
mov eax, dword [0x448a14]
imul eax, ecx
mov dword [0x448a14], eax
inc dword [0x4456f4]
mov eax, dword [0x4456f4]
add eax, 0x8b61005b
xor eax, 0x17aeebab
cmp eax, 0xca4278a6
jg 0x424576
mov ecx, dword [0x44e8bc]
mov eax, dword [0x43b468]
and ecx, eax
sub dword [0x436508], ecx
jmp 0x424580
mov dword [0x437340], 0x7fff16b1
and dword [0x444958], 0xd7b8fb8d
mov esi, dword [ebp - 0x10]
add dword [0x4352bc], 0xdeae2ae2
test esi, esi
js 0x4245ac
mov ecx, ebx
call fcn.0041eb80
sub eax, edi
cmp eax, esi
jae 0x42468a
dec dword [0x449748]
mov eax, dword [0x449748]
mov ecx, dword [0x4456fc]
imul ecx, eax
movzx eax, word [0x450bae]
or eax, ecx
cmp dword [ebp + 0x14], 0x3aa6
mov word [0x450bae], ax
jne 0x42460e
imul eax, dword [0x43ba9c], 0x27d68ccc
mov ecx, ebx
mov dword [0x43ba9c], eax
call fcn.0041eb80
cmp eax, 0x500000
ja 0x424680
mov eax, dword [0x442470]
xor eax, dword [0x43ca6c]
xor eax, 0x6315c88e
mov dword [0x442470], eax
movzx eax, word [0x45aa22]
movsx ecx, ax
mov eax, dword [0x438794]
sub ecx, eax
mov word [0x45aa22], cx
mov eax, dword [0x4390a0]
dec eax
push 0
mov dword [0x4390a0], eax
or dword [0x439b3c], eax
lea eax, [ebp - 0x770]
push 0x400
push eax
push dword [ebp - 0xc]
call dword [0x45cb90]
mov ecx, dword [0x447530]
mov edx, eax
dec ecx
mov dword [ebp - 8], edx
mov dword [0x447530], ecx
and ecx, 0x8dc746c4
movzx eax, word [0x4544d8]
or ecx, eax
mov word [0x4544d8], cx
test edx, edx
jg 0x4242e5
jmp 0x42468a
mov dword [0x442538], 0xd83468c8
movsx ecx, word [0x453294]
mov eax, dword [0x4437dc]
push dword [ebp - 0xc]
sar ecx, 5
and ecx, 0x3537db6a
xor eax, ecx
sub dword [0x439f94], eax
inc dword [0x4437dc]
call dword [0x45cb74]
mov eax, dword [0x43938c]
or eax, 0xb9254c3f
cmp eax, 0x54f09ca3
jg 0x4246dc
mov eax, dword [0x44be80]
xor eax, dword [0x44acb4]
xor eax, 0x45276d3d
mov dword [0x44acb4], eax
mov ecx, dword [ebp - 4]
test ecx, ecx
js 0x424723
mov eax, dword [0x43835c]
sub eax, 0x2b8cf3ec
push ecx
and eax, 0x7cc60794
mov ecx, ebx
xor dword [0x447e48], eax
push 0
call fcn.0041f770
push eax
mov ecx, ebx
call fcn.0040c450
mov ecx, dword [0x44bb14]
mov eax, dword [0x449e90]
and ecx, 0x5219d9cc
xor eax, ecx
add dword [0x43706c], eax
mov eax, dword [0x438f1c]
sub eax, 0x7343d219
cmp eax, 0x65868520
jl 0x424757
mov eax, dword [0x44e1b0]
not eax
imul eax, eax, 0x433db61c
cmp eax, 0xd6159593
jne 0x424757
mov eax, dword [0x44d410]
add eax, 0x6217f5e
mov dword [0x446c04], eax
pop edi
lea ecx, [ebp - 0x24]
call fcn.004050c0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret