Function at 0x422cb0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x468
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x60], 0xab36ad33
mov dword [esp + 0x64], 0xd7b7a9c5
mov dword [esp + 0x68], 0xd380d541
mov dword [esp + 0x6c], 0xdf46d1bd
mov dword [esp + 0x70], 0xdbdaddb1
mov dword [esp + 0x74], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0x17
ja 0x421abf
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0x1b2a09ba]
add eax, 0xba
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0xea
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0x18
jb 0x421a80
lea ebx, [esp + 0x60]
lea ecx, [esp + 0x50]
push ebx
call fcn.00436220
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x444110]
lea ecx, [esp + 0x50]
push 0x410
call fcn.00436470
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444118]
xor ecx, ecx
jmp dword [0x44412c]
mov dword [esp + 0x60], 0x32db2035
mov dword [esp + 0x64], 0x5852ad48
mov dword [esp + 0x68], 0x4c554ba9
mov dword [esp + 0x6c], 0xb75e46a5
mov dword [esp + 0x70], 0x58a3aab6
mov dword [esp + 0x74], 0x5fbcb6bd
mov dword [esp + 0x78], 0x5a51be52
mov dword [esp + 0x7c], 0x56bf54ab
mov dword [esp + 0x80], 0xb6a8a6aa
mov dword [esp + 0x84], 0x6e8bb599
mov dword [esp + 0x88], 0xc3b28989
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov byte [esp + 0x94], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0x34
ja 0x421bf0
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx edx, byte [esp + ecx + 0x60]
mov ecx, 0xfc46e243
sub ecx, eax
add eax, 0xbc
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
mov ecx, eax
xor ecx, 0xdb
and eax, 0x5b
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0x35
jb 0x421ba0
lea eax, [esp + 0x18]
lea ecx, [esp + 0x50]
push 0
push 0x2b
push ebx
push eax
call fcn.004369d0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
xor eax, eax
cmp edi, esi
sete al
jmp dword [eax*4 + 0x444130]
mov eax, esi
sub eax, edi
sar eax, 2
imul eax, eax, 0x421
push eax
call fcn.00409390
add esp, 4
mov dword [esp + 0x48], 0
xor ecx, ecx
cmp edi, esi
setne cl
mov dword [esp + 0x44], eax
mov dword [esp + 4], eax
mov dword [esp + 0x4c], esi
jmp dword [ecx*4 + 0x444148]
mov ecx, dword [esp + 0x48]
mov eax, ecx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x4441f0]
mov eax, dword [case.0x421ddd.29]
mov ebx, dword [esp + 0x44]
jmp case.0x421ddd.26
xor eax, eax
cmp ecx, 3
sete al
jmp dword [eax*4 + 0x4441d0]
add edi, 4
xor eax, eax
cmp edi, esi
setne al
jmp dword [eax*4 + 0x444148]
jmp dword [0x444154]
mov esi, dword [edi]
lea eax, [esp + 0x60]
push 0x400
push 0
push eax
call fcn.00409530
add esp, 0xc
lea eax, [esp + 0x30]
lea ecx, [esp + 0x50]
push eax
push 0x400
lea eax, [esp + 0x68]
push eax
push esi
call fcn.00436860
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, edi
mov edi, dword [edi]
push 0x400
push 0
push ebx
call fcn.00409530
add esp, 0xc
lea eax, [esp + 0x30]
lea ecx, [esp + 0x50]
push eax
push 0x400
push ebx
push edi
mov edi, esi
call fcn.00436860
jmp dword [0x444158]
xor edx, edx
cmp eax, 0xc0000000
setae dl
mov ecx, 3
xor eax, eax
jmp dword [edx*4 + 0x444160]
xor edx, edx
cmp dword [esp + 0x30], 0
sete dl
jmp dword [edx*4 + 0x444168]
xor ecx, ecx
mov eax, 1
jmp dword [eax*4 + 0x444170]
jmp dword [eax*4 + 0x444170]
mov byte [esp + 0x45f], 0
movzx ecx, byte [esp + 0x60]
xor eax, eax
test cl, cl
je 0x421d82
mov edx, ebx
nop
nop
nop
nop
cmp cl, 0x2e
je 0x421d80
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x421d70
jmp 0x421d82
mov eax, edx
mov ecx, dword [case.0x421c12.20]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor edx, edx
test eax, eax
setne dl
xor ecx, ecx
jmp dword [edx*4 + 0x444188]
lea edx, [eax + 1]
movzx ecx, byte [eax + 1]
xor edi, edi
test cl, cl
mov dword [esp + 0xc], edx
je 0x421dd6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x421dd0
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x421dc0
jmp 0x421dd2
mov edi, edx
mov edx, dword [esp + 0xc]
xor ecx, ecx
test edi, edi
setne cl
jmp dword [ecx*4 + 0x444190]
mov eax, dword [case.0x421c12.16]
mov edi, esi
jmp case.0x422025.2
mov ecx, edi
sub ecx, edx
lea ebx, [ecx + ecx*2]
shr ebx, 2
mov dword [esp + 0x28], ecx
movzx eax, byte [eax + ecx]
cmp eax, 0x3d
je 0x421e0c
cmp eax, 0x2e
jne 0x421e0d
dec ebx
mov eax, dword [esp + 0x28]
movzx eax, byte [eax + edx - 2]
cmp eax, 0x3d
je 0x421e20
cmp eax, 0x2e
jne 0x421e21
dec ebx
mov dword [esp + 0x5c], ebx
lea eax, [ebx + 1]
push eax
call fcn.00409390
add esp, 4
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0xc]
cmp edi, ecx
je 0x421f56
xor ebx, ebx
mov edi, 2
jmp 0x421e66
mov ecx, dword [esp + 0x10]
nop
nop
lea eax, [edi + 4]
add edi, 2
mov ebx, ecx
cmp edi, edx
mov edi, eax
mov ecx, dword [esp + 0xc]
jae 0x421f56
mov dword [esp + 0x2c], ebx
movzx eax, byte [ecx + edi - 2]
push eax
mov ebx, ecx
call fcn.00419140
add esp, 4
mov byte [esp + 0x10], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00419140
add esp, 4
movzx ecx, byte [esp + 0x10]
shl cl, 2
mov edx, eax
shr dl, 4
and dl, 3
or dl, cl
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov byte [ecx + ebx], dl
lea ecx, [ebx + 1]
mov edx, dword [esp + 0x28]
cmp edi, edx
jae 0x421e50
mov byte [esp + 0x10], al
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + edi]
push eax
mov ebx, ecx
call fcn.00419140
mov ecx, ebx
mov edx, dword [esp + 0x2c]
add esp, 4
cmp al, 0x40
je 0x421e50
mov byte [esp + 0xb], al
movzx eax, al
mov ecx, eax
not ecx
or ecx, 0x3c
add eax, ecx
inc eax
movzx ecx, byte [esp + 0x10]
shl cl, 4
shr eax, 2
add al, cl
mov ebx, dword [esp + 0x2c]
lea ecx, [ebx + 2]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x24]
mov byte [ecx + ebx + 1], al
lea eax, [edi + 1]
cmp eax, edx
jae 0x421e4a
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00419140
mov edx, dword [esp + 0x2c]
add esp, 4
cmp al, 0x40
mov ecx, dword [esp + 0x10]
mov ah, byte [esp + 0xb]
je 0x421e50
shl ah, 6
add al, ah
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov byte [ecx + ebx + 2], al
add ebx, 3
mov ecx, ebx
jmp 0x421e50
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x24]
mov byte [edi + eax], 0
push edi
call fcn.00401f70
add esp, 4
mov ebx, eax
jmp dword [0x444198]
push edi
call fcn.004093a0
add esp, 4
push ebx
call fcn.00402a10
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4441a0]
mov edi, esi
jmp 0x42208f
mov dword [esp + 0x30], 0x73d4d8db
lea ecx, [esp + 0x34]
mov dword [ecx + 7], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 0xe
ja 0x422010
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx edx, byte [esp + edx + 0x30]
lea edi, [ecx + edx]
add edi, 0x61c37dce
add ecx, 0x61c37dce
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esp], edi
mov ecx, dword [esp]
add cl, 0x5e
mov edx, dword [esp + 0x14]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp ecx, 0xf
jb 0x421fd0
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.004027b0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4441a8]
movzx ecx, byte [eax]
test cl, cl
je 0x42204d
inc eax
mov edx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x422040
jmp 0x422051
mov edx, dword [esp + 4]
mov word [edx], 0x203a
add edx, 2
mov dword [esp + 4], edx
mov edi, esi
movzx eax, byte [esp + 0x60]
test al, al
je 0x42207d
lea ecx, [esp + 0x61]
mov edx, dword [esp + 4]
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x422070
jmp 0x422081
mov edx, dword [esp + 4]
mov byte [edx], 0xa
inc edx
mov dword [esp + 4], edx
mov al, 1
mov dword [esp + 0x48], eax
push ebx
call fcn.00402fe0
add esp, 4
mov eax, dword [case.0x421c12.16]
lea ebx, [esp + 0x60]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ecx, ecx
jmp eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x4441c0]
xor eax, eax
cmp ecx, 3
setb al
mov esi, dword [esp + 0x4c]
jmp dword [eax*4 + 0x4441c8]
xor ecx, ecx
xor eax, eax
cmp ecx, 3
setb al
mov esi, dword [esp + 0x4c]
jmp dword [eax*4 + 0x4441c8]
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x4441d8]
mov eax, dword [case.0x422025.11]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x44422c]
mov eax, dword [case.0x421c12.5]
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
test edi, edi
jne 0x422254
jmp case.0x421ad2.1
mov edx, dword [esp + 4]
mov byte [edx], 0
mov ecx, edx
not ecx
mov ebx, dword [esp + 0x44]
and ecx, ebx
mov eax, ebx
not eax
and eax, edx
sub eax, ecx
mov dword [esp + 0x60], 0x17282975
mov dword [esp + 0x64], 0x2b1f1811
mov dword [esp + 0x68], 0x360e3015
mov dword [esp + 0x6c], 0x301073
mov dword [esp + 0x70], 0x1f790605
mov dword [esp + 0x74], 0x10b003b
mov dword [esp + 0x78], 0xb047f3b
mov word [esp + 0x7c], 0x9506
mov dword [esp + 0x7e], 0
mov dword [esp + 0x82], 0
mov byte [esp + 0x86], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x26
ja 0x422212
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x60]
lea esi, [ecx + 0x75a4eec7]
mov edi, edx
not edi
or edi, esi
and esi, edx
add esi, edi
neg esi
add ecx, esi
add ecx, 0x75a4eec6
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x30]
add cl, 0x8f
mov edx, dword [esp]
mov byte [esp + edx + 0x60], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x27
jb 0x4221d0
lea edx, [esp + 0x60]
mov ecx, dword [ebp + 8]
push eax
push ebx
push edx
call fcn.00409ee0
mov ecx, eax
mov eax, dword [case.0x421ddd.29]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x444208]
push ebx
mov esi, ecx
call fcn.004093a0
mov ecx, esi
add esp, 4
and cl, 1
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
test edi, edi
je case.0x421ad2.1
cmp edi, esi
je case.0x421ad2.1
push edi
mov esi, ecx
call fcn.004093a0
mov ecx, esi
add esp, 4
mov ebx, ecx
lea ecx, [esp + 0x50]
call fcn.004365a0
mov eax, dword [case.0x421ddd.34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
cmp dword [esp + 0xc], 0
sete al
jmp dword [eax*4 + 0x4442c0]
mov dword [esp + 0x40], 0x6bf56d08
mov dword [esp + 0x44], 0x67f469fb
mov dword [esp + 0x48], 0x63fb65fe
mov dword [esp + 0x4c], 0x9ffa61fb
mov dword [esp + 0x50], 0x9b099d03
mov dword [esp + 0x54], 0x970c990a
mov dword [esp + 0x58], 0x9309950d
mov dword [esp + 0x5c], 0x8f0491c2
mov dword [esp + 0x60], 0x8b108d10
lea eax, [esp + 0x64]
mov word [esp + 0x64], 0x8988
mov dword [esp + 0x66], 0
mov word [esp + 0x6a], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x2b
ja 0x422393
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx - 0x1a5e2e8e]
add ecx, 0x72
or ecx, esi
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xdc], esi
mov ecx, dword [esp + 0xdc]
mov edx, ecx
or edx, 0xe1
and ecx, 0xe1
add ecx, edx
inc cl
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x2c
jb 0x422340
lea edi, [esp + 0xa4]
lea edx, [esp + 0x40]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xc8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
mov edi, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x4223d0
cmp eax, 0xffffffd9
jge 0x422a55
mov eax, 0xffffffff
jmp 0x422a58
xor edx, edx
test eax, eax
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x4442b8]
jmp dword [ecx*4 + 0x444230]
mov dword [esp + 0x40], 0xf3440db0
mov dword [esp + 0x44], 0xf73df135
mov dword [esp + 0x48], 0xfb4df53d
mov dword [esp + 0x4c], 0xff48f94c
mov dword [esp + 0x50], 0xe35efd45
mov dword [esp + 0x54], 0xe727e12d
mov dword [esp + 0x58], 0xeb22e523
mov dword [esp + 0x5c], 0xef5ce921
mov dword [esp + 0x60], 0xd36eed29
mov dword [esp + 0x64], 0xd765d167
mov dword [esp + 0x68], 0xdb6ed51e
mov dword [esp + 0x6c], 0xdf1fd963
mov dword [esp + 0x70], 0xc307dd6a
mov dword [esp + 0x74], 0xc77cc17c
mov dword [esp + 0x78], 0xcb66c565
mov dword [esp + 0x7c], 0xcf6bc952
mov dword [esp + 0x80], 0xb305cd70
mov dword [esp + 0x84], 0xb713b124
mov dword [esp + 0x88], 0xbb17b515
mov word [esp + 0x8c], 0xb9b8
mov dword [esp + 0x8e], 0
mov dword [esp + 0xa4], 0
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x51
ja 0x42254b
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa4]
movzx esi, byte [esp + edx + 0x40]
lea edx, [ecx + esi]
add edx, 0x9c5704fe
add ecx, 0x9c5704fe
and ecx, esi
add ecx, ecx
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0xdc]
mov edx, ecx
xor edx, 0xd
and ecx, 0xd
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0xa4]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x52
jb 0x4224e0
lea ecx, [esp + 4]
lea edx, [esp + 0x40]
push 0
push 0
push eax
push ecx
push edx
call fcn.0043b4e0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x444238]
lea ebx, [esp + 0x3c]
lea eax, [esp + 0x10]
push ebx
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x24]
call fcn.0043b900
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444240]
jmp dword [0x44424c]
mov ecx, dword [esp + 0x3c]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x4225b2
mov eax, 0xffffffff
push eax
call fcn.00409390
add esp, 4
mov dword [esp + 0x40], 0x3760551
mov dword [esp + 0x44], 0xf7c017f
mov dword [esp + 0x48], 0xb780d61
mov dword [esp + 0x4c], 0x1758097e
mov dword [esp + 0x50], 0x13681579
mov dword [esp + 0x54], 0x1f10117a
mov byte [edi + 2], 0
mov word [edi], 0
mov dword [esp + 0xa4], 0
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x1a
ja 0x42265f
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa4]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + 0x78716701]
inc ecx
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xdc], esi
mov ecx, dword [esp + 0xdc]
add cl, 0xf9
mov edx, dword [esp + 0xa4]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x1b
jb 0x422610
push ebx
push eax
push 0
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x14]
call fcn.0043bf70
add esp, 0x14
jmp case.0x422565.5
push ebx
push esi
push 0
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x14]
call fcn.0043bf70
add esp, 0x14
jmp dword [0x444254]
mov eax, dword [esp + 0x3c]
mov ecx, eax
inc ecx
jns 0x4226b0
mov eax, 0xffffffff
jmp 0x4226b5
add eax, eax
add eax, 2
push eax
call fcn.00409390
add esp, 4
mov esi, eax
mov dword [esp + 0x40], 0x3760551
mov dword [esp + 0x44], 0xf7c017f
mov dword [esp + 0x48], 0xb780d61
mov dword [esp + 0x4c], 0x1758097e
mov dword [esp + 0x50], 0x13681579
mov dword [esp + 0x54], 0x1f10117a
mov byte [edi + 2], 0
mov word [edi], 0
mov dword [esp + 0xa4], 0
mov eax, dword [esp + 0xa4]
cmp eax, 0x1a
ja 0x422680
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x78716701]
inc eax
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xdc], edx
mov eax, dword [esp + 0xdc]
add al, 0xf9
mov ecx, dword [esp + 0xa4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0xa4]
mov eax, dword [esp + 0xa4]
cmp eax, 0x1b
jb 0x422720
jmp 0x422680
mov eax, 4
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x4442a8]
shr eax, 0x1f
mov dword [esp + 0xc], esi
jmp dword [eax*4 + 0x444258]
mov dword [esp + 0xc], 0
jmp dword [0x444260]
push esi
call fcn.004093a0
add esp, 4
mov dword [esp + 0xc], 0
mov esi, dword [esp + 4]
jmp dword [0x444268]
mov esi, dword [esp + 4]
jmp dword [0x444268]
lea eax, [esp + 0x40]
push eax
call fcn.0043aa30
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x444290]
xor eax, eax
cmp dword [esp + 0x40], 1
sete al
jmp dword [eax*4 + 0x444298]
xor eax, eax
mov ecx, 1
jmp dword [ecx*4 + 0x4442a0]
mov eax, 2
xor ecx, ecx
jmp dword [ecx*4 + 0x4442a0]
xor eax, eax
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x4442a8]
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x4442a8]
xor edx, edx
cmp eax, 4
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x4442b0]
cmp dword [ebx + edx*8], 0x11081610
je 0x422890
inc edx
cmp eax, edx
jne 0x422880
jmp case.0x422565.12
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je case.0x422565.12
push esi
push 1
push dword [0x4491e0]
push eax
call fcn.00438180
add esp, 0x10
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x40], 0x3a393837
mov byte [edi - 0x10], 0
mov dword [edi - 0x14], 0
mov dword [esp + 0xa4], 0
mov eax, dword [esp + 0xa4]
cmp eax, 8
ja 0x422930
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x5013d707]
add eax, 7
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xdc], edx
mov eax, dword [esp + 0xdc]
add al, 0xcf
mov ecx, dword [esp + 0xa4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0xa4]
mov eax, dword [esp + 0xa4]
cmp eax, 9
jb 0x4228e0
mov eax, dword [0x4491d8]
test eax, eax
je 0x422980
mov ecx, dword [esp + 0x40]
xor edx, edx
mov ebx, dword [0x4491dc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x11081610
je 0x422960
inc edx
cmp eax, edx
jne 0x422950
jmp 0x422980
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x422980
push esi
push 1
push dword [0x4491e0]
push eax
call fcn.00438180
add esp, 0x10
nop
nop
nop
nop
nop
nop
jmp dword [0x444270]
xor eax, eax
cmp dword [esp + 0xc], 0
setne al
jmp dword [eax*4 + 0x444278]
mov eax, 2
jmp dword [0x444288]
mov dword [esp + 0x40], 0x3a393837
mov byte [edi - 0x10], 0
mov dword [edi - 0x14], 0
mov dword [esp + 0xa4], 0
mov eax, dword [esp + 0xa4]
cmp eax, 8
ja 0x422a30
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x5013d707]
add eax, 7
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xdc], edx
mov eax, dword [esp + 0xdc]
add al, 0xcf
mov ecx, dword [esp + 0xa4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0xa4]
mov eax, dword [esp + 0xa4]
cmp eax, 9
jb 0x4229e0
mov eax, dword [0x4491d8]
test eax, eax
je case.0x422565.12
mov ecx, dword [esp + 0x40]
xor edx, edx
mov ebx, dword [0x4491dc]
jmp 0x422880
xor ebx, ebx
jmp 0x4232d5
add eax, 0x26
push eax
call fcn.00409390
add esp, 4
mov esi, eax
movzx ecx, word [edi]
test cx, cx
je 0x422a81
lea edx, [edi + 2]
mov eax, esi
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422a70
mov word [eax], 0
movzx ecx, word [esp + 0xa4]
test cx, cx
je 0x422ab1
lea edx, [esp + 0xa6]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422aa0
mov word [eax], 0
mov dword [esp + 0x1c], esi
jmp dword [0x4442c8]
push edi
call fcn.004093a0
add esp, 4
lea eax, [esp + 0x10]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.0043aca0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4442d0]
xor esi, esi
xor edi, edi
jmp dword [0x444330]
push dword [esp + 0x1c]
call fcn.004093a0
add esp, 4
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x444338]
xor ebx, ebx
test esi, esi
jne 0x42329d
jmp 0x4232d5
lea eax, [esp + 0x3c]
push 0
push eax
push dword [esp + 0x18]
call fcn.0043b020
add esp, 0xc
not eax
shr eax, 0x1f
xor edi, edi
xor esi, esi
jmp dword [eax*4 + 0x4442d8]
mov esi, dword [esp + 0x3c]
lea eax, [esi + 1]
push eax
call fcn.00409390
add esp, 4
push 0
push esi
mov dword [esp + 0xa8], eax
push eax
push dword [esp + 0x1c]
call fcn.0043b130
add esp, 0x10
not eax
shr eax, 0x1f
xor edi, edi
xor esi, esi
jmp dword [eax*4 + 0x4442e0]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0xa0]
mov byte [edi + esi], 0
push 0x20
call fcn.00409390
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esp + 0x30], eax
mov ecx, eax
push esi
push edi
call fcn.004252b0
movzx eax, al
xor edi, edi
xor edx, edx
jmp dword [eax*4 + 0x4442e8]
mov dword [esp + 0x40], 0xc7d4cee3
mov dword [esp + 0x44], 0xd2c4d4c3
mov dword [esp + 0x48], 0x372b1ff7
mov dword [esp + 0x4c], 0x1cf1283a
mov dword [esp + 0x50], 0x3e232434
mov dword [esp + 0x54], 0x242504fb
mov dword [esp + 0x58], 0x2f242c27
mov dword [esp + 0x5c], 0xdd2f
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x1f
ja 0x422c71
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax - 0x3084888]
add eax, 0x78
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xdc], edx
mov eax, dword [esp + 0xdc]
add al, 0xb8
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x20
jb 0x422c30
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x40]
push eax
call fcn.004254f0
xor ecx, ecx
test eax, eax
setne cl
xor edx, edx
jmp dword [ecx*4 + 0x4442f0]
add eax, 8
xor edi, edi
mov ebx, dword [eax]
xor eax, eax
test ebx, ebx
setne al
xor edx, edx
xor esi, esi
xor ecx, ecx
jmp dword [eax*4 + 0x4442f8]
mov eax, dword [ebx]
mov edx, edi
sub edx, esi
sar edx, 3
cmp edi, ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x24], eax
jne 0x422d43
mov edi, ecx
lea eax, [edx + 1]
mov ebx, edx
shr ebx, 1
add ebx, edx
cmp ebx, eax
ja 0x422cdd
mov ebx, eax
lea eax, [ebx*8]
push eax
call fcn.00409390
add esp, 4
mov dword [esp + 0x18], eax
test esi, esi
je 0x422d31
cmp esi, edi
je 0x422d26
xor eax, eax
mov edx, dword [esp + 0x18]
nop
mov ecx, dword [esi + eax]
mov dword [edx + eax], ecx
mov ecx, dword [esi + eax + 4]
mov dword [edx + eax + 4], ecx
mov dword [esi + eax], 0
lea ecx, [esi + eax]
add ecx, 8
add eax, 8
cmp ecx, edi
jne 0x422d00
mov eax, esi
jmp 0x422d28
mov eax, edi
push eax
call fcn.004093a0
add esp, 4
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
lea edi, [esi + edx*8]
lea ecx, [esi + ebx*8]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edi
mov dword [esi + edx*8], 0
mov dword [esp + 0x18], esi
mov dword [esi + edx*8 + 4], 0
xor esi, esi
mov ebx, esi
inc esi
cmp byte [eax + ebx], 0
jne 0x422d60
push esi
mov edi, eax
call fcn.00409390
add esp, 4
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
mov dword [ecx + edx*8], eax
mov ecx, esi
shr ecx, 2
mov edx, edi
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edi, esi
and edi, 0xfffffffc
add edi, eax
mov ecx, esi
xor ecx, 3
mov eax, esi
or eax, 0xfffffffc
and eax, ecx
add eax, dword [esp + 0x24]
mov edx, esi
and edx, 3
mov ecx, edx
shr ecx, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x2c]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea ecx, [edx + 1]
mov dword [esp + 0x2c], ecx
not edx
mov edi, edx
or edi, 1
mov ecx, edi
add ecx, dword [esp + 0x2c]
je 0x422df9
not edi
mov eax, dword [esp + 0x28]
add eax, edi
or edx, 0xfffffffe
mov edi, dword [esp + 0x20]
add edi, dword [esp + 0x2c]
add edi, edx
push ecx
push eax
push edi
call fcn.004093c0
add esp, 0xc
cmp esi, 1
je 0x422e11
lea ecx, [esi - 1]
cmp esi, 2
jne 0x422e24
mov eax, 0xffffffff
mov edi, dword [esp + 0x38]
jmp 0x422e6f
xor eax, eax
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x9c]
jmp 0x422e98
and ebx, 0xfffffffe
mov eax, 0xffffffff
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
shr edx, 8
xor al, byte [esi]
movzx eax, al
xor edx, dword [eax*4 + 0x43e7a0]
mov eax, edx
shr eax, 8
xor dl, byte [esi + 1]
add esi, 2
movzx edx, dl
xor eax, dword [edx*4 + 0x43e7a0]
add ebx, 0xfffffffe
jne 0x422e40
mov dword [esp + 0x24], esi
mov edx, dword [esp + 0x18]
test cl, 1
mov ebx, dword [esp + 0x9c]
je 0x422e96
mov ecx, eax
shr ecx, 8
mov esi, dword [esp + 0x24]
xor al, byte [esi]
movzx eax, al
xor ecx, dword [eax*4 + 0x43e7a0]
mov eax, ecx
not eax
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0xc]
mov dword [edx + esi*8 + 4], eax
add edi, 8
add ebx, 4
mov eax, dword [case.0x422c88.7]
nop
jmp eax
mov ebx, dword [ebx]
xor eax, eax
test ebx, ebx
setne al
mov esi, edx
jmp dword [eax*4 + 0x4442f8]
mov esi, edx
jmp dword [0x444310]
mov ebx, dword [esp + 0x30]
mov ecx, ebx
call fcn.00425680
push ebx
call fcn.004093a0
add esp, 4
mov eax, dword [case.0x422c88.12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x444328]
push dword [esp + 0xa0]
call fcn.004093a0
add esp, 4
mov dword [esp + 0x18], esi
mov ebx, edi
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], 0x3a393837
mov dword [esp + 0x44], 0
mov byte [esp + 0x48], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 8
ja 0x422f82
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + 0x5013d707]
add ecx, 7
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xdc], esi
mov ecx, dword [esp + 0xdc]
add cl, 0xcf
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 9
jb 0x422f40
mov ecx, dword [0x4491d8]
test ecx, ecx
je 0x422fbc
mov edx, dword [esp + 0x40]
xor esi, esi
mov edi, dword [0x4491dc]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x422fb0
inc esi
cmp ecx, esi
jne 0x422fa0
jmp 0x422fbc
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x423336
mov edi, ebx
mov esi, dword [esp + 0x18]
jmp dword [0x444330]
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x444338]
mov dword [esp + 0x38], edi
mov eax, edi
mov dword [esp + 0x18], esi
sub eax, esi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.00409390
add esp, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], 0xb3e0b58d
mov dword [esp + 0x44], 0xcfcdb1c3
mov dword [esp + 0x48], 0xcbb8cdb1
mov dword [esp + 0x4c], 0xc7b8c995
mov dword [esp + 0x50], 0xc398c5b6
mov dword [esp + 0x54], 0xdf4cc1bd
mov dword [esp + 0x58], 0xdbe7dda1
mov dword [esp + 0x5c], 0xd7b5d9be
mov dword [esp + 0x60], 0xd3afd55a
mov dword [esp + 0x64], 0xefa3d1ad
mov dword [esp + 0x68], 0xeb98ed8a
mov dword [esp + 0x6c], 0xe795e99b
mov dword [esp + 0x70], 0xe390e599
mov dword [esp + 0x74], 0xff6ae1d0
mov dword [esp + 0x78], 0xfb86fd82
lea eax, [esp + 0x7c]
mov word [esp + 0x7c], 0xf9fa
mov dword [esp + 0x7e], 0
mov word [esp + 0x82], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x43
ja 0x4230e8
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + edx]
add esi, 0xeef50739
add ecx, 0xeef50739
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xdc], esi
mov ecx, dword [esp + 0xdc]
add cl, 0x71
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x44
jb 0x4230a0
lea ebx, [esp + 0xdc]
lea edx, [esp + 0x40]
mov edi, ebx
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x118]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea esi, [esp + 0x3c]
push esi
push 0
push 0
push 0x1e
push ebx
push 0
call dword [0x4491d4]
mov ebx, dword [esp + 0x3c]
test ebx, ebx
jns 0x423134
mov eax, 0xffffffff
jmp 0x423137
lea eax, [ebx + ebx]
push eax
call fcn.00409390
add esp, 4
mov edi, eax
push esi
push ebx
push eax
push 0x1e
lea eax, [esp + 0xec]
push eax
push 0
call dword [0x4491d4]
lea eax, [esp + 0xd0]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0xb0], edi
push edi
call fcn.0043aca0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444340]
xor ebx, ebx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
jmp dword [0x444410]
push dword [esp + 0xa0]
call fcn.004093a0
add esp, 4
mov eax, ebx
and al, 1
movzx eax, al
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x18]
jmp dword [eax*4 + 0x444418]
mov ebx, dword [esp + 0x1c]
mov byte [ebx], 0
sub ebx, dword [esp + 0x20]
mov dword [esp + 0x40], 0x1f121dcd
mov dword [esp + 0x44], 0x13e7e619
mov dword [esp + 0x48], 0x2c28161d
mov dword [esp + 0x4c], 0xda2aceeb
mov dword [esp + 0x50], 0xc7e120dd
mov dword [esp + 0x54], 0x25d32e23
mov dword [esp + 0x58], 0x233ee723
mov word [esp + 0x5c], 0xa93c
mov dword [esp + 0x5e], 0
mov dword [esp + 0x61], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x24
ja 0x423270
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0xe6767996
add eax, 0xe6767996
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0xe6
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x25
jb 0x423230
mov ecx, dword [ebp + 8]
push ebx
push dword [esp + 0x24]
lea eax, [esp + 0x48]
push eax
call fcn.00409ee0
mov ebx, eax
jmp dword [0x444420]
cmp esi, edi
je 0x4232d5
mov dword [esp + 0x28], ebx
mov ebx, esi
jmp 0x4232b4
cmp esi, edi
je 0x4232c8
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x4232b0
push eax
call fcn.004093a0
add esp, 4
jmp 0x4232b0
push ebx
call fcn.004093a0
add esp, 4
mov ebx, dword [esp + 0x28]
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 0xd8]
push 0
push eax
push dword [esp + 0xd8]
call fcn.0043b020
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
jmp dword [eax*4 + 0x444348]
mov esi, dword [esp + 0xd8]
lea eax, [esi + 1]
push eax
call fcn.00409390
add esp, 4
mov ebx, eax
mov edi, dword [esp + 0xd0]
jmp dword [0x444354]
push eax
push 1
push dword [0x4491e0]
push ecx
call fcn.00438180
add esp, 0x10
mov edi, ebx
mov esi, dword [esp + 0x18]
jmp dword [0x444330]
not eax
shr eax, 0x1f
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
jmp dword [eax*4 + 0x444360]
mov esi, dword [esp + 0xd8]
mov byte [ebx + esi], 0
push 0x20
call fcn.00409390
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esp + 0xd4], eax
mov ecx, eax
push esi
push ebx
call fcn.004252b0
movzx eax, al
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
jmp dword [eax*4 + 0x444368]
mov dword [esp + 0x40], 0xf7c4ced3
mov dword [esp + 0x44], 0xc2f4c4f3
mov dword [esp + 0x48], 0xc7cbdf07
mov dword [esp + 0x4c], 0xdc01c8fa
mov dword [esp + 0x50], 0xfef3f4c4
mov dword [esp + 0x54], 0xf9f9163b
mov dword [esp + 0x58], 0xcff9fcf6
mov dword [esp + 0x5c], 0xf7fdfc1f
mov word [esp + 0x60], 0x41e5
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov word [esp + 0x6a], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x2b
ja 0x42349a
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax - 0x40b52230]
and edx, ecx
add eax, ecx
add eax, 0xbf4addd0
add edx, edx
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov ecx, eax
xor ecx, 0x4f
and eax, 0x4f
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x2c
jb 0x423450
mov ecx, dword [esp + 0xd4]
lea eax, [esp + 0x40]
push eax
call fcn.004254f0
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x20]
mov dword [esp + 0x1c], edx
jmp dword [ecx*4 + 0x444370]
mov esi, dword [esp + 0xd4]
jmp dword [0x4443e0]
jmp dword [0x4443e8]
mov ecx, esi
call fcn.00425680
push esi
call fcn.004093a0
add esp, 4
nop
nop
nop
nop
mov ecx, esi
call fcn.00425680
push esi
call fcn.004093a0
add esp, 4
jmp dword [0x4443f0]
jmp dword [0x4443f8]
push ebx
call fcn.004093a0
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x444408]
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x40], 0x3a393837
mov dword [esp + 0x44], 0
mov byte [esp + 0x48], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 8
ja 0x42359c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + 0x5013d707]
add ecx, 7
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 4]
add cl, 0xcf
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 9
jb 0x423560
mov ecx, dword [0x4491d8]
test ecx, ecx
mov ebx, dword [esp + 0x28]
je 0x4235d8
mov edx, dword [esp + 0x40]
xor esi, esi
mov edi, dword [0x4491dc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4235d0
inc esi
cmp ecx, esi
jne 0x4235c0
jmp 0x4235d8
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4235fa
jmp dword [0x444410]
mov eax, ebx
and al, 1
movzx eax, al
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x18]
jmp dword [eax*4 + 0x444418]
jmp dword [0x444420]
push eax
push 1
push dword [0x4491e0]
push ecx
call fcn.00438180
add esp, 0x10
jmp dword [0x444410]
add eax, 8
mov dword [esp + 0x28], 0
mov edx, dword [eax]
xor eax, eax
test edx, edx
setne al
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xcc], ebx
jmp dword [eax*4 + 0x444378]
add edx, 4
mov edx, dword [edx]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x444378]
mov esi, dword [edx]
cmp dword [edx + 0x18], 3
mov ecx, 0
jne case.default.0x42366a
mov ecx, dword [edx + 0x10]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x444380]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x444388]
mov dword [esp + 0x30], edx
mov ebx, ecx
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x4236be
sub ecx, ebx
inc ecx
shr ecx, 1
mov dword [esp + 0x9c], ecx
lea eax, [ecx + 1]
push eax
call fcn.00409390
add esp, 4
movsx ecx, byte [ebx]
xor edx, edx
test ecx, ecx
setne dl
mov dword [esp + 0x2c], eax
jmp dword [edx*4 + 0x444390]
inc edi
mov byte [eax], cl
inc eax
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
mov ebx, edi
jmp dword [edx*4 + 0x444390]
mov edx, ecx
or edx, 0x20
lea edi, [edx - 0x61]
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0x4236fc
mov ecx, 0xffffffff
cmp edi, 6
jae case.default.0x423713
add edx, 0xffffffa9
mov ecx, edx
movsx edx, byte [ebx + 1]
mov edi, ebx
xor ebx, ebx
test edx, edx
setne bl
jmp dword [ebx*4 + 0x444398]
mov dword [esp + 0x24], eax
mov ebx, edi
mov edi, edx
or edi, 0x20
lea eax, [edi - 0x61]
mov dword [esp + 0xc], eax
add edx, 0xffffffd0
cmp edx, 0xa
jb 0x423739
mov edx, 0xffffffff
shl ecx, 4
add ebx, 2
cmp dword [esp + 0xc], 6
jae case.default.0x42375e
add edi, 0xffffffa9
mov edx, edi
mov eax, dword [esp + 0x24]
or edx, ecx
mov byte [eax], dl
inc eax
movsx ecx, byte [ebx]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x444390]
mov byte [eax], 0
nop
nop
nop
nop
nop
nop
nop
nop
inc esi
movzx eax, byte [esi - 1]
movsx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x423770
cmp ecx, 0x20
je 0x423770
movzx ecx, al
cmp ecx, 0x2b
je 0x423796
cmp ecx, 0x2d
jne 0x423a18
cmp al, 0x2b
sete byte [esp + 0x34]
movzx eax, byte [esi]
cmp al, 0x30
jne 0x4237b4
movzx eax, byte [esi + 1]
and al, 0xdf
xor ecx, ecx
cmp al, 0x58
sete cl
lea esi, [esi + ecx*2]
mov dword [esp + 0xc], esi
xor ecx, ecx
xor esi, esi
xor eax, eax
jmp 0x4237c2
mov ecx, edi
mov ebx, eax
mov edi, esi
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0xc]
movsx eax, byte [esi]
lea edx, [eax - 0x30]
cmp edx, 0xa
jb 0x4237f2
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x19
ja 0x423863
or al, 0x20
cmp al, 0x66
jg 0x423863
movsx edx, al
add edx, 0xffffffa9
inc esi
mov dword [esp + 0xc], esi
mov ecx, edi
and ecx, ebx
mov esi, 0xffffffff
mov eax, 0xffffffff
cmp ecx, 0xffffffff
mov ecx, 0x22
je 0x4237c2
mov ecx, ebx
shld ebx, edi, 4
shr ecx, 0x1c
shl edi, 4
mov eax, ecx
neg eax
mov eax, 0
sbb eax, eax
or ebx, eax
or eax, edi
mov edi, ebx
mov ebx, edx
sar ebx, 0x1f
add eax, edx
adc ebx, edi
mov edx, 0xffffffff
jb 0x423840
mov esi, ebx
mov edx, eax
mov eax, esi
mov esi, edx
mov edi, 0x22
mov edx, 0x22
jb 0x423854
mov edx, dword [esp + 0x24]
test ecx, ecx
jne 0x4237c0
mov edi, edx
jmp 0x4237c0
xor esi, esi
mov eax, edi
neg eax
mov ecx, 0
sbb ecx, ebx
cmp byte [esp + 0x34], 0
jne case.default.0x423892
mov edi, eax
mov ebx, ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0xc], ebx
xor eax, eax
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x18]
cmp ebx, edi
setne al
jmp dword [eax*4 + 0x4443a0]
mov esi, dword [ebx]
xor eax, eax
jmp dword [eax*4 + 0x4443b0]
add ebx, 8
xor eax, eax
cmp ebx, edi
setne al
jmp dword [eax*4 + 0x4443a0]
cmp dword [esp + 0x24], 0x22
setne al
mov ecx, dword [ebx + 4]
mov edx, ecx
shr edx, 0x1c
xor edx, dword [esp + 0xc]
shl ecx, 4
or ecx, 1
xor ecx, dword [esp + 0x34]
or ecx, edx
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x4443a8]
mov eax, 1
jmp dword [eax*4 + 0x4443b0]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x4443b8]
mov ebx, dword [esp + 0xcc]
mov edx, dword [esp + 0x30]
jmp dword [0x4443d8]
lea edi, [esp + 0x10]
mov ebx, dword [esp + 0xcc]
jmp dword [0x4443c0]
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x44], eax
mov eax, 0xffffffff
nop
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
jne 0x423940
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
push 0x932a8d34
push dword [0x4491e4]
call fcn.0043a090
add esp, 8
lea ecx, [esp + 4]
push edi
push 1
push 0
push 0
push ecx
push 0
lea ecx, [esp + 0x58]
push ecx
call eax
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x44], eax
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
jne 0x4239b0
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
push 0x932a8d34
push dword [0x4491e4]
call fcn.0043a090
add esp, 8
lea ecx, [esp + 4]
push edi
push 1
push 0
push 0
push ecx
push 0
lea ecx, [esp + 0x58]
push ecx
call eax
jmp dword [0x4443cc]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4443d0]
mov edx, dword [esp + 0x30]
jmp dword [0x4443d8]
dec esi
mov byte [esp + 0x34], 1
cmp al, 0x30
je 0x4237a4
jmp 0x4237b4
movzx eax, byte [esi]
test al, al
je 0x423a4d
inc esi
mov ecx, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x423a40
jmp 0x423a51
mov ecx, dword [esp + 0x1c]
mov word [ecx], 0x203a
add ecx, 2
mov edx, dword [esp + 0x10]
test edx, edx
je 0x423a8f
mov ebx, ecx
mov eax, dword [esp + 0x14]
mov ecx, edx
and ecx, 3
je 0x423a93
xor esi, esi
mov edi, ebx
movzx ebx, byte [eax]
cmp bl, 1
sbb eax, 0xffffffff
mov byte [edi + esi], bl
inc esi
cmp ecx, esi
jne 0x423a72
add edi, esi
mov ecx, edx
sub ecx, esi
mov ebx, edi
mov esi, edi
jmp 0x423a95
mov esi, ecx
jmp 0x423adc
mov ecx, edx
cmp edx, 4
mov edi, ebx
mov ebx, dword [esp + 0xcc]
jb 0x423adc
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi + 1], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi + 2], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
lea esi, [edi + 4]
mov byte [edi + 3], dl
mov edi, esi
add ecx, 0xfffffffc
jne 0x423aa3
mov byte [esi], 0xa
inc esi
mov dword [esp + 0x1c], esi
push 0x2e0ec9bb
push dword [0x4491cc]
call fcn.0043a090
add esp, 8
push dword [esp + 0x14]
call eax
mov al, 1
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x30]
jmp dword [0x4443d8]
push dword [esp + 0x2c]
call fcn.004093a0
mov edx, dword [esp + 0x34]
add esp, 4
add edx, 4
mov edx, dword [edx]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x444378]
push 0
push esi
push ebx
push edi
call fcn.0043b130
add esp, 0x10
push 0
push esi
push ebx
push edi
call fcn.0043b130
add esp, 0x10
jmp dword [0x444358]