Function at 0x422882
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x468
mov esi, esp
push eax
push eax
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
sub esp, 0x24
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x50], eax
mov esp, eax
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x60], 0x6be66de3
mov dword [esi + 0x64], 0x670769f5
mov dword [esi + 0x68], 0x633065f1
mov dword [esi + 0x6c], 0x9f1661fd
mov dword [esi + 0x70], 0x9b9a9d01
mov dword [esi + 0x74], 0
mov dword [esi + 0x78], 0
mov byte [esi + 0x7c], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x1c
ja 0x421ca2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov eax, dword [esi + 4]
movzx edx, byte [esi + eax + 0x60]
add ecx, 0x25a431f2
mov eax, ecx
and eax, edx
xor ecx, edx
lea ecx, [ecx + eax*2]
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x30]
add al, 0x62
mov ecx, dword [esi + 4]
mov byte [esi + ecx + 0x60], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x1d
jb 0x421c60
lea eax, [esi + 0x60]
lea ecx, [esi + 0x3c]
push eax
call fcn.00436f40
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44344c]
lea ecx, [esi + 0x3c]
push 0x410
call fcn.00437190
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x443454]
jmp dword [0x44345c]
mov dword [esi + 0x60], 0x321bc035
mov dword [esi + 0x64], 0xd8d20d28
mov dword [esi + 0x68], 0x2cd52b09
mov dword [esi + 0x6c], 0x37de2605
mov dword [esi + 0x70], 0xd8030a36
mov dword [esi + 0x74], 0x1f3c363d
mov dword [esi + 0x78], 0x1a113e12
mov dword [esi + 0x7c], 0x163f140b
mov dword [esi + 0x80], 0x3608060a
mov dword [esi + 0x84], 0xe2b3519
mov dword [esi + 0x88], 0x63322929
mov dword [esi + 0x8c], 0
mov dword [esi + 0x8f], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x32
ja 0x421d99
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [esi + ecx + 0x60]
lea edx, [eax + ecx]
add edx, 0xe21c13cc
add eax, 0xe21c13cc
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 4], edx
mov eax, dword [esi + 4]
add al, 0x6c
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x60], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x33
jb 0x421d60
lea eax, [esi + 0x30]
lea ecx, [esi + 0x3c]
push 0
push 0x2b
lea edx, [esi + 0x60]
push edx
push eax
call fcn.00437720
mov dword [esi + 0x60], 0x321bc035
mov dword [esi + 0x64], 0xd8d20d28
mov dword [esi + 0x68], 0x2cd52b09
mov dword [esi + 0x6c], 0x37de2605
mov dword [esi + 0x70], 0xd8030a36
mov dword [esi + 0x74], 0x1f3c363d
mov dword [esi + 0x78], 0x1a113e12
mov dword [esi + 0x7c], 0x163f140b
mov dword [esi + 0x80], 0x3608060a
mov dword [esi + 0x84], 0xe2b3519
mov dword [esi + 0x88], 0x63322929
mov dword [esi + 0x8c], 0
mov dword [esi + 0x8f], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x32
ja 0x421e69
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [esi + ecx + 0x60]
lea edx, [eax + ecx]
add edx, 0xe21c13cc
add eax, 0xe21c13cc
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 4], edx
mov eax, dword [esi + 4]
add al, 0x6c
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x60], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x33
jb 0x421e30
lea eax, [esi + 0x30]
lea ecx, [esi + 0x3c]
push 0
push 0x2b
lea edx, [esi + 0x60]
push edx
push eax
call fcn.00437720
jmp dword [0x443468]
mov ecx, dword [esi + 0x30]
mov edx, dword [esi + 0x34]
xor eax, eax
cmp ecx, edx
sete al
jmp dword [eax*4 + 0x44346c]
mov dword [esi + 0x1c], edi
mov dword [esi + 0x18], edx
mov eax, edx
mov edi, ecx
sub eax, ecx
sar eax, 2
mov ecx, eax
and ecx, 0xfffffbde
mov edx, eax
and edx, 0x421
or eax, 0x421
imul eax, edx
xor edx, 0x421
imul edx, ecx
add eax, edx
push eax
call fcn.00408a50
add esp, 4
mov ecx, dword [case.0x421cb3.17]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov dword [esi + 0x5c], 0
lea ecx, [esi + 0x61]
mov dword [esi + 0x54], ecx
xor ecx, ecx
mov edx, edi
cmp edi, dword [esi + 0x18]
setne cl
mov dword [esi + 0x48], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x4c], 0
jmp dword [ecx*4 + 0x443494]
add edx, 4
xor eax, eax
cmp edx, dword [esi + 0x18]
setne al
jmp dword [eax*4 + 0x443494]
mov dword [esi + 0x20], edx
mov edi, dword [edx]
push 0x400
push 0
lea ebx, [esi + 0x60]
push ebx
call fcn.00408be0
add esp, 0xc
lea eax, [esi + 4]
lea ecx, [esi + 0x3c]
push eax
push 0x400
push ebx
push edi
call fcn.004375b0
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
jmp dword [ecx*4 + 0x44349c]
xor eax, eax
cmp dword [esi + 4], 0
sete al
jmp dword [eax*4 + 0x4434a4]
mov eax, 1
mov edx, dword [esi + 0x20]
jmp dword [eax*4 + 0x4434ac]
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x5c]
jmp dword [eax*4 + 0x4434ac]
mov byte [esi + 0x45f], 0
movzx eax, byte [esi + 0x60]
xor edi, edi
test al, al
je 0x421fc1
lea ecx, [esi + 0x60]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x2e
je 0x421fbf
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x421fb0
jmp 0x421fc1
mov edi, ecx
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x4434b4]
movzx eax, byte [edi + 1]
inc edi
xor ecx, ecx
test al, al
je 0x421fef
mov ecx, edi
nop
nop
nop
nop
cmp al, 0x2e
je 0x421fef
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x421fe0
xor ecx, ecx
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x4434bc]
mov ebx, ecx
sub ecx, edi
lea eax, [ecx - 0x6f208cfa]
lea edx, [eax + eax*2]
add edx, 0x4d61a6ee
shr edx, 2
movzx ecx, byte [ecx + edi - 1]
cmp ecx, 0x3d
je 0x422022
cmp ecx, 0x2e
jne 0x422029
mov ecx, edx
not ecx
lea edx, [ecx + edx*2]
movzx eax, byte [eax + edi + 0x6f208cf8]
cmp eax, 0x3d
je 0x42203b
cmp eax, 0x2e
jne 0x42203c
dec edx
mov dword [esi + 0x58], edx
lea eax, [edx + 1]
push eax
call fcn.00408a50
add esp, 4
mov dword [esi + 0x14], eax
mov dword [esi + 0x28], edi
mov ecx, ebx
sub ecx, edi
je 0x42214d
xor edx, edx
mov edi, 2
mov dword [esi + 0x24], ecx
jmp 0x422080
mov edx, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
cmp edi, ecx
mov edi, eax
jae 0x42214d
mov dword [esi + 0x2c], edx
mov ebx, dword [esi + 0x28]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00418790
add esp, 4
mov byte [esi + 0xc], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00418790
mov ecx, dword [esi + 0x24]
add esp, 4
movzx edx, byte [esi + 0xc]
shl dl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, dl
mov edx, dword [esi + 0x14]
mov ebx, dword [esi + 0x2c]
mov byte [edx + ebx], ah
lea edx, [ebx + 1]
cmp edi, ecx
jae 0x422070
mov byte [esi + 0xc], al
mov eax, dword [esi + 0x28]
movzx eax, byte [eax + edi]
push eax
mov ebx, edx
call fcn.00418790
mov edx, ebx
mov ecx, dword [esi + 0x24]
add esp, 4
cmp al, 0x40
je 0x422070
movzx edx, byte [esi + 0xc]
shl dl, 4
mov ah, al
shr ah, 2
and ah, 0xf
or ah, dl
mov ebx, dword [esi + 0x2c]
lea edx, [ebx + 2]
mov dword [esi + 0xc], edx
mov edx, dword [esi + 0x14]
mov byte [edx + ebx + 1], ah
mov ebx, eax
lea eax, [edi + 1]
cmp eax, ecx
jae 0x422067
mov eax, dword [esi + 0x28]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00418790
mov ecx, dword [esi + 0x24]
add esp, 4
cmp al, 0x40
mov edx, dword [esi + 0xc]
je 0x422070
shl bl, 6
add al, bl
mov edx, dword [esi + 0x14]
mov ebx, dword [esi + 0x2c]
mov byte [edx + ebx + 2], al
add ebx, 3
mov edx, ebx
jmp 0x422070
mov eax, dword [esi + 0x58]
mov edi, dword [esi + 0x14]
mov byte [edi + eax], 0
push edi
call fcn.00401e80
add esp, 4
mov ebx, eax
jmp dword [0x4434c4]
push edi
call fcn.00408a60
add esp, 4
push ebx
call fcn.00402850
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4434cc]
jmp 0x422267
mov edi, dword [esi + 0x1c]
mov dword [edi], 0xfb9a6e53
mov dword [edi + 4], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 7
ja 0x4221f7
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
mov edi, dword [esi + 0x1c]
movzx edi, byte [edi + edx]
mov edx, 0x339c29a0
sub edx, ecx
add ecx, 0x5f
and ecx, edi
or edx, edi
not edx
add edx, edi
mov edi, dword [esi + 0x1c]
sub edx, ecx
mov dword [esi + 4], edx
mov ecx, dword [esi + 4]
mov edx, ecx
or edx, 0x66
and ecx, 0x66
add ecx, edx
inc cl
mov edx, dword [esi + 8]
mov byte [edi + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 8
jb 0x4221b0
push edi
push eax
call fcn.004027d0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4434d4]
mov edx, dword [esi + 0x10]
jmp 0x422238
movzx ecx, byte [eax]
test cl, cl
je 0x42222d
inc eax
mov edx, dword [esi + 0x10]
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x422220
jmp 0x422230
mov edx, dword [esi + 0x10]
mov word [edx], 0x203a
add edx, 2
movzx eax, byte [esi + 0x60]
test al, al
je 0x42225b
mov ecx, dword [esi + 0x54]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x422250
mov byte [edx], 0xa
inc edx
mov dword [esi + 0x10], edx
mov al, 1
mov dword [esi + 0x4c], eax
push ebx
call fcn.00402ab0
add esp, 4
mov edx, dword [esi + 0x20]
add edx, 4
xor eax, eax
cmp edx, dword [esi + 0x18]
setne al
jmp dword [eax*4 + 0x443494]
mov ebx, dword [esi + 0x4c]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x4434ec]
mov edi, dword [esi + 0x48]
jmp dword [0x4434f4]
and bl, 1
jmp dword [0x443500]
mov eax, dword [case.0x421cb3.12]
nop
nop
nop
jmp eax
xor ebx, ebx
jmp dword [0x443500]
mov ebx, dword [esi + 0x10]
mov byte [ebx], 0
mov edi, dword [esi + 0x48]
sub ebx, edi
mov edx, dword [esi + 0x50]
mov dword [edx], 0xcff2f1a1
mov dword [edx + 4], 0xf3c7c6cd
mov dword [edx + 8], 0xf8c4c6c1
mov dword [edx + 0xc], 0xcafade83
mov dword [edx + 0x10], 0xe7bdfcf1
mov dword [edx + 0x14], 0xf9f3fefb
mov dword [edx + 0x18], 0xc3ceb7cb
mov word [edx + 0x1c], 0x5dc8
mov dword [edx + 0x1e], 0
mov word [edx + 0x22], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x23
ja 0x422357
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x22a92390]
add eax, 0x90
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x60], edx
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x60]
add al, 0x10
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x24
jb 0x422320
mov ecx, dword [ebp + 8]
push ebx
push edi
push edx
call fcn.004095a0
mov ebx, eax
jmp dword [0x4434f4]
push edi
call fcn.00408a60
add esp, 4
and bl, 1
jmp dword [0x443500]
jmp dword [0x44350c]
mov eax, dword [esi + 0x30]
test eax, eax
je 0x422397
cmp eax, dword [esi + 0x34]
je 0x422397
push eax
call fcn.00408a60
add esp, 4
jmp dword [0x443504]
mov eax, dword [esi + 0x30]
test eax, eax
je case.0x421fc8.19
cmp eax, dword [esi + 0x34]
je case.0x421fc8.19
push eax
call fcn.00408a60
add esp, 4
jmp case.0x421fc8.19
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esi + 0x3c]
call fcn.004372d0
lea ecx, [esi + 0x3c]
call fcn.004372d0
jmp dword [0x443514]
int3
xor edx, edx
test eax, eax
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x443594]
jmp dword [ecx*4 + 0x44351c]
mov dword [esp + 0x38], 0xcb64cd68
mov dword [esp + 0x3c], 0xc79dc995
mov dword [esp + 0x40], 0xc36dc59d
mov dword [esp + 0x44], 0xdf70c16c
mov dword [esp + 0x48], 0xdb7edd75
mov dword [esp + 0x4c], 0xd797d98d
mov dword [esp + 0x50], 0xd38ad58b
mov dword [esp + 0x54], 0x2f7cd189
mov dword [esp + 0x58], 0x2b8e2d71
mov dword [esp + 0x5c], 0x27752987
mov dword [esp + 0x60], 0x238e257e
mov dword [esp + 0x64], 0x3f7f218b
mov dword [esp + 0x68], 0x3b673d92
mov dword [esp + 0x6c], 0x379c399c
mov dword [esp + 0x70], 0x33863595
mov dword [esp + 0x74], 0xfb331ba
mov dword [esp + 0x78], 0xba50da8
mov dword [esp + 0x7c], 0x7bb0984
mov dword [esp + 0x80], 0x3b705a5
mov word [esp + 0x84], 0x100
lea ecx, [esp + 0x86]
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 0xa0], 0
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x53
ja 0x422564
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + edx]
add esi, 0x7f0296e2
add ecx, 0x7f0296e2
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xd4], esi
mov ecx, dword [esp + 0xd4]
mov edx, ecx
xor edx, 0xd1
and ecx, 0x51
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0xa0]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x54
jb 0x422500
lea ecx, [esp + 0x18]
lea edx, [esp + 0x38]
push 0
push 0
push eax
push ecx
push edx
call fcn.0043bc10
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x443524]
mov edi, ebx
lea ebx, [esp + 0x30]
lea eax, [esp + 8]
push ebx
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x38]
call fcn.0043c030
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44352c]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x4225c7
mov eax, 0xffffffff
push eax
call fcn.00408a50
add esp, 4
mov esi, eax
mov dword [esp + 0x38], 0x638c61a9
mov dword [esp + 0x3c], 0x67f265f7
mov dword [esp + 0x40], 0x6b866989
mov dword [esp + 0x44], 0x6f9e6d80
mov dword [esp + 0x48], 0x138611f1
mov dword [esp + 0x4c], 0x171615fc
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xa0]
cmp eax, 0x17
ja 0x422675
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0x3e0f86b0
add eax, 0x3e0f86b0
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xd4], edx
mov eax, dword [esp + 0xd4]
add al, 0x30
mov ecx, dword [esp + 0xa0]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0xa0]
mov eax, dword [esp + 0xa0]
cmp eax, 0x18
jb 0x422620
push ebx
push esi
push 0
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x28]
call fcn.0043c6f0
add esp, 0x14
shr eax, 0x1f
mov edi, esi
jmp dword [eax*4 + 0x443534]
xor edi, edi
jmp dword [0x44353c]
push esi
call fcn.00408a60
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], 0xfcfdfeff
lea ecx, [esp + 0x86]
mov byte [ecx - 0x46], 0
mov dword [ecx - 0x4a], 0
mov dword [esp + 0xa0], 0
mov ecx, dword [esp + 0xa0]
cmp ecx, 8
ja 0x422751
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x1b0880a0]
lea ebx, [ecx + 0xa0]
xor ebx, esi
and esi, edx
and ebx, edx
add ecx, edx
add ecx, 0x1b0880a0
lea edx, [ebx + esi*2]
sub ecx, edx
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xd4]
add cl, 0xa0
mov edx, dword [esp + 0xa0]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
cmp ecx, 9
jb 0x4226f0
mov ecx, dword [0x44769c]
test ecx, ecx
je case.default.0x4227b9
mov edx, dword [esp + 0x38]
xor esi, esi
mov ebx, dword [0x4476a0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + esi*8], 0x11081610
je 0x422794
inc esi
cmp ecx, esi
jne 0x422770
jmp case.default.0x4227b9
mov eax, 4
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x443584]
mov ecx, dword [ebx + esi*8 + 4]
cmp ecx, edx
je case.default.0x4227b9
push eax
push 1
push dword [0x4476a4]
push ecx
call fcn.00438e70
add esp, 0x10
nop
nop
xor eax, eax
mov ebx, edi
test edi, edi
setne al
jmp dword [eax*4 + 0x443544]
lea eax, [esp + 0x38]
push eax
call fcn.0043b190
add esp, 4
movzx edx, al
xor eax, eax
mov ecx, 1
jmp dword [edx*4 + 0x44355c]
xor edx, edx
cmp dword [esp + 0x38], 1
sete dl
jmp dword [edx*4 + 0x443564]
mov edx, dword [case.0x4227b9.6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, 2
xor ecx, ecx
jmp edx
jmp dword [ecx*4 + 0x44357c]
xor eax, eax
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x443584]
mov ecx, dword [case.0x4227b9.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, 2
jmp ecx
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x443584]
xor edx, edx
cmp eax, 4
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x44358c]
mov eax, dword [case.0x4227b9.25]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4435ac]
mov dword [esp + 4], eax
mov dword [esp + 0x38], 0x63c965c2
mov dword [esp + 0x3c], 0x6ff261f3
mov dword [esp + 0x40], 0x6bfb6dc4
mov dword [esp + 0x44], 0x57cc69c3
mov dword [esp + 0x48], 0x53c555fb
mov dword [esp + 0x4c], 0x5ffa51c0
mov dword [esp + 0x50], 0x5bf55dc9
mov dword [esp + 0x54], 0x47c25988
mov dword [esp + 0x58], 0x43ee45ea
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], 0x4142
mov dword [esp + 0xa0], 0
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x27
ja 0x422961
nop
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + edx]
add esi, 0xe0268391
add ecx, 0xe0268391
and ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xd4]
add cl, 9
mov edx, dword [esp + 0xa0]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x28
jb 0x422900
lea edi, [esp + 0xa0]
lea edx, [esp + 0x38]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xc4]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x422990
mov esi, ebx
cmp eax, 0xffffffd9
jge 0x4229bc
mov eax, 0xffffffff
jmp 0x4229bf
mov eax, dword [case.0x4227b9.30]
xor ebx, ebx
jmp eax
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
add eax, 0x26
push eax
call fcn.00408a50
add esp, 4
mov ebx, eax
movzx ecx, word [esi]
test cx, cx
je 0x4229f1
lea edx, [esi + 2]
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4229e0
mov word [eax], 0
movzx ecx, word [esp + 0xa0]
test cx, cx
je 0x422a21
lea edx, [esp + 0xa2]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422a10
mov word [eax], 0
mov eax, dword [esp + 4]
jmp dword [eax*4 + 0x4435c4]
push esi
call fcn.00408a60
add esp, 4
lea eax, [esp + 8]
push 0x60
push 3
push 0x120089
push eax
push ebx
call fcn.0043b3d0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4435cc]
xor esi, esi
xor edi, edi
jmp dword [0x44367c]
push ebx
call fcn.00408a60
add esp, 4
xor eax, eax
mov dword [esp + 4], esi
cmp esi, edi
sete al
xor ebx, ebx
jmp dword [eax*4 + 0x443684]
mov dword [esp + 0x28], ebx
lea eax, [esp + 0x30]
push 0
push eax
push dword [esp + 0x10]
call fcn.0043b760
add esp, 0xc
mov ecx, dword [case.0x4227b9.38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
xor edi, edi
xor ebx, ebx
jmp dword [eax*4 + 0x4435e4]
mov esi, dword [esp + 0x30]
lea eax, [esi + 1]
push eax
call fcn.00408a50
add esp, 4
push 0
push esi
mov dword [esp + 0x98], eax
push eax
push dword [esp + 0x14]
call fcn.0043b860
add esp, 0x10
not eax
shr eax, 0x1f
xor edi, edi
xor ebx, ebx
jmp dword [eax*4 + 0x4435ec]
mov edi, dword [esp + 0x90]
jmp dword [0x4435f8]
mov esi, dword [esp + 0x30]
mov byte [edi + esi], 0
push 0x20
call fcn.00408a50
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 ecx, eax
push esi
push edi
call fcn.00424d20
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x30]
mov byte [edi + esi], 0
push 0x20
call fcn.00408a50
add esp, 4
mov ebx, eax
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 ecx, eax
push esi
push edi
call fcn.00424d20
jmp dword [0x443600]
mov dword [esp + 0x94], ebx
movzx eax, al
xor edi, edi
xor ebx, ebx
jmp dword [eax*4 + 0x443604]
mov dword [esp + 0x38], 0x3fcec4db
mov dword [esp + 0x3c], 0xb43ece3b
mov dword [esp + 0x40], 0xbfb3a7ff
mov dword [esp + 0x44], 0xaaf9b240
mov dword [esp + 0x48], 0xb0bbbe4a
mov dword [esp + 0x4c], 0xa2bd9ef3
mov dword [esp + 0x50], 0x57ae56af
mov word [esp + 0x54], 0xd957
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov byte [esp + 0x5e], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0x26
ja 0x422c65
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0xb9]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x5d6516b9
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xd4]
add al, 0xf1
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0x27
jb 0x422c20
mov ecx, dword [esp + 0x94]
lea eax, [esp + 0x38]
push eax
call fcn.00424f10
mov ecx, dword [case.0x4227b9.53]
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x44361c]
mov eax, dword [case.0x4227b9.68]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x44365c]
mov esi, dword [esp + 0x94]
mov ecx, esi
call fcn.00425080
push esi
call fcn.00408a60
add esp, 4
nop
jmp dword [0x44366c]
jmp dword [0x443674]
push dword [esp + 0x90]
call fcn.00408a60
add esp, 4
mov dword [esp + 4], ebx
mov ebx, edi
mov eax, dword [esp + 8]
mov dword [esp + 0x38], 0xfcfdfeff
mov dword [esp + 0x3c], 0
mov byte [esp + 0x40], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 8
ja 0x422d62
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x1b0880a0]
lea edi, [ecx + 0xa0]
xor edi, esi
and esi, edx
and edi, edx
add ecx, edx
add ecx, 0x1b0880a0
lea edx, [edi + esi*2]
sub ecx, edx
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xd4]
add cl, 0xa0
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 9
jb 0x422d10
mov ecx, dword [0x44769c]
test ecx, ecx
je 0x4231f5
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x4476a0]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4231e9
inc esi
cmp ecx, esi
jne 0x422d80
jmp 0x4231f5
jmp dword [0x443630]
add eax, 8
xor edi, edi
mov ecx, dword [eax]
xor eax, eax
mov dword [esp + 0x34], ecx
test ecx, ecx
setne al
xor ebx, ebx
xor edx, edx
jmp dword [eax*4 + 0x443634]
mov ecx, dword [esp + 0x34]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
mov dword [esp + 0x34], ecx
test ecx, ecx
setne al
jmp dword [eax*4 + 0x443634]
jmp dword [0x443640]
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov ecx, edi
sub ecx, ebx
sar ecx, 3
cmp edi, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 4], eax
jne 0x422e8b
mov dword [esp + 0x10], edx
lea eax, [ecx + 1]
mov esi, ecx
shr esi, 1
add esi, ecx
cmp esi, eax
ja 0x422e21
mov esi, eax
lea eax, [esi*8]
push eax
call fcn.00408a50
add esp, 4
mov dword [esp + 0x20], eax
test ebx, ebx
je 0x422e7d
mov edx, dword [esp + 0x10]
cmp ebx, edx
je 0x422e74
xor eax, eax
mov edi, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebx + eax]
mov dword [edi + eax], ecx
mov ecx, dword [ebx + eax + 4]
mov dword [edi + eax + 4], ecx
mov dword [ebx + eax], 0
lea ecx, [ebx + eax]
add ecx, 8
add eax, 8
cmp ecx, edx
jne 0x422e50
mov edx, ebx
push edx
call fcn.00408a60
add esp, 4
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
lea edi, [ebx + ecx*8]
lea edx, [ebx + esi*8]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0x2c], edi
mov dword [ebx + ecx*8], 0
mov dword [ebx + ecx*8 + 4], 0
xor ebx, ebx
mov edi, dword [esp + 4]
nop
nop
nop
nop
mov esi, ebx
inc ebx
cmp byte [edi + esi], 0
jne 0x422eb0
push ebx
call fcn.00408a50
add esp, 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov dword [edx + ecx*8], eax
mov ecx, ebx
shr ecx, 2
mov edx, edi
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov edx, ebx
and edx, 0xfffffffc
mov edi, dword [esp + 4]
add edi, edx
add edx, eax
mov dword [esp + 0x24], edi
mov eax, edi
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x422f12
mov eax, ebx
and eax, 2
mov ecx, dword [esp + 0x24]
movzx ecx, byte [ecx + eax]
mov byte [edx + eax], cl
cmp ebx, 1
mov edi, dword [esp + 0x2c]
je 0x422f3a
lea ecx, [ebx - 1]
cmp ebx, 2
jne 0x422f45
mov eax, 0xffffffff
mov edx, dword [esp + 0x10]
test cl, 1
jne 0x422fb6
jmp 0x422fdc
xor eax, eax
mov edx, dword [esp + 0x10]
jmp 0x422fde
mov dword [esp + 0x24], ecx
and esi, 0xfffffffe
mov eax, 0xffffffff
mov ecx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
shr edx, 8
movzx edi, byte [ecx]
mov ebx, eax
and ebx, edi
add eax, edi
add ebx, ebx
sub eax, ebx
movzx eax, al
xor edx, dword [eax*4 + 0x43e7d0]
mov eax, edx
movzx edi, byte [ecx + 1]
mov ebx, edx
and ebx, edi
add edx, edi
add ebx, ebx
sub edx, ebx
shr eax, 8
movzx edx, dl
xor eax, dword [edx*4 + 0x43e7d0]
add ecx, 2
add esi, 0xfffffffe
jne 0x422f60
mov dword [esp + 4], ecx
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
test cl, 1
je 0x422fdc
mov ecx, eax
shr ecx, 8
mov edx, dword [esp + 4]
movzx edx, byte [edx]
mov esi, eax
and esi, edx
add eax, edx
mov edx, dword [esp + 0x10]
add esi, esi
sub eax, esi
movzx eax, al
xor ecx, dword [eax*4 + 0x43e7d0]
mov eax, ecx
not eax
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov dword [ebx + ecx*8 + 4], eax
add edi, 8
jmp case.0x4227b9.63
not eax
mov ecx, dword [esp + 0x20]
mov dword [ebx + ecx*8 + 4], eax
add edi, 8
jmp dword [0x443648]
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov ecx, edi
sub ecx, ebx
sar ecx, 3
cmp edi, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
jne 0x42308f
mov dword [esp + 0x10], edx
lea eax, [ecx + 1]
mov edi, ecx
shr edi, 1
add edi, ecx
cmp edi, eax
ja 0x42302f
mov edi, eax
lea eax, [edi*8]
push eax
call fcn.00408a50
add esp, 4
mov esi, eax
test ebx, ebx
je 0x42307d
mov edx, dword [esp + 0x10]
cmp ebx, edx
je 0x423074
xor eax, eax
nop
mov ecx, dword [ebx + eax]
mov dword [esi + eax], ecx
mov ecx, dword [ebx + eax + 4]
mov dword [esi + eax + 4], ecx
mov dword [ebx + eax], 0
lea ecx, [ebx + eax]
add ecx, 8
add eax, 8
cmp ecx, edx
jne 0x423050
mov edx, ebx
push edx
call fcn.00408a60
add esp, 4
mov ecx, dword [esp + 0x20]
lea eax, [esi + ecx*8]
lea edx, [esi + edi*8]
mov edi, eax
mov ebx, esi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], edx
mov dword [esp + 0x2c], edi
mov dword [ebx + ecx*8], 0
mov dword [esp + 4], ebx
mov dword [ebx + ecx*8 + 4], 0
xor ebx, ebx
nop
nop
nop
nop
mov esi, ebx
inc ebx
cmp byte [eax + esi], 0
jne 0x4230b0
push ebx
mov edi, eax
call fcn.00408a50
add esp, 4
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x20]
mov dword [ecx + edx*8], eax
mov ecx, ebx
shr ecx, 2
mov edx, edi
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov edx, ebx
and edx, 0xfffffffc
mov edi, dword [esp + 0x14]
add edi, edx
add edx, eax
mov dword [esp + 0x24], edi
mov eax, edi
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x423114
mov eax, ebx
and eax, 2
mov ecx, dword [esp + 0x24]
movzx ecx, byte [ecx + eax]
mov byte [edx + eax], cl
cmp ebx, 1
mov edi, dword [esp + 0x2c]
je 0x423140
lea ecx, [ebx - 1]
cmp ebx, 2
jne 0x423150
mov eax, 0xffffffff
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0x10]
test cl, 1
je 0x422ff0
jmp 0x4231be
xor eax, eax
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0x10]
jmp 0x422ff2
mov dword [esp + 0x24], ecx
and esi, 0xfffffffe
mov eax, 0xffffffff
mov ecx, dword [esp + 0x14]
mov edx, eax
shr edx, 8
movzx edi, byte [ecx]
mov ebx, eax
and ebx, edi
add eax, edi
add ebx, ebx
sub eax, ebx
movzx eax, al
xor edx, dword [eax*4 + 0x43e7d0]
mov eax, edx
movzx edi, byte [ecx + 1]
mov ebx, edx
and ebx, edi
add edx, edi
add ebx, ebx
sub edx, ebx
shr eax, 8
movzx edx, dl
xor eax, dword [edx*4 + 0x43e7d0]
add ecx, 2
add esi, 0xfffffffe
jne 0x423160
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
test cl, 1
je 0x422ff0
mov ecx, eax
shr ecx, 8
mov edx, dword [esp + 0x14]
movzx edx, byte [edx]
mov esi, eax
and esi, edx
add eax, edx
mov edx, dword [esp + 0x10]
add esi, esi
sub eax, esi
movzx eax, al
xor ecx, dword [eax*4 + 0x43e7d0]
mov eax, ecx
jmp 0x422ff0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4235c8
mov edi, ebx
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x28]
jmp dword [0x44367c]
xor eax, eax
mov dword [esp + 4], esi
cmp esi, edi
sete al
xor ebx, ebx
jmp dword [eax*4 + 0x443684]
mov dword [esp + 0x2c], edi
mov eax, edi
sub eax, dword [esp + 4]
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.00408a50
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], 0x73be6d49
mov dword [esp + 0x3c], 0x77917183
mov dword [esp + 0x40], 0x7b967595
mov dword [esp + 0x44], 0x7f8e79b9
mov dword [esp + 0x48], 0x3c67d8c
mov dword [esp + 0x4c], 0x7f201e1
mov dword [esp + 0x50], 0xb2f05e5
mov dword [esp + 0x54], 0xfd909d4
mov dword [esp + 0x58], 0x13f70df8
mov dword [esp + 0x5c], 0x17fb11f1
mov dword [esp + 0x60], 0x1bf615c8
mov dword [esp + 0x64], 0x1ff919eb
mov dword [esp + 0x68], 0x23ce1dfd
mov dword [esp + 0x6c], 0x27dc2112
mov dword [esp + 0x70], 0x2bc025c0
lea eax, [esp + 0x74]
mov word [esp + 0x74], 0x2928
mov dword [esp + 0x76], 0
mov word [esp + 0x7a], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x43
ja 0x423321
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx - 0x113378d2]
and esi, edx
add ecx, edx
add ecx, 0xeecc872e
add esi, esi
sub ecx, esi
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
add cl, 0xbe
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x44
jb 0x4232e0
lea ebx, [esp + 0xd4]
lea edx, [esp + 0x38]
mov edi, ebx
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x110]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea esi, [esp + 0x30]
push esi
push 0
push 0
push 0x1e
push ebx
push 0
call dword [0x447698]
mov ebx, dword [esp + 0x30]
test ebx, ebx
jns 0x42336d
mov eax, 0xffffffff
jmp 0x423370
lea eax, [ebx + ebx]
push eax
call fcn.00408a50
add esp, 4
mov edi, eax
push esi
push ebx
push eax
push 0x1e
lea eax, [esp + 0xe4]
push eax
push 0
call dword [0x447698]
lea eax, [esp + 0x98]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0x44], edi
push edi
call fcn.0043b3d0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44368c]
xor ebx, ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
jmp dword [0x44378c]
push dword [esp + 0x34]
call fcn.00408a60
add esp, 4
mov eax, ebx
and al, 1
movzx ecx, al
mov edi, dword [esp + 0x2c]
mov eax, ebx
jmp dword [ecx*4 + 0x443794]
mov esi, dword [esp + 0x24]
mov byte [esi], 0
mov ebx, dword [esp + 0x14]
sub esi, ebx
mov dword [esp + 0x38], 0x676869c5
mov dword [esp + 0x3c], 0x6b5f5861
mov dword [esp + 0x40], 0x666e6065
mov dword [esp + 0x44], 0x506040a3
mov dword [esp + 0x48], 0x5fb97655
mov dword [esp + 0x4c], 0x714b707b
mov dword [esp + 0x50], 0x6b74bf7b
mov word [esp + 0x54], 0xe576
mov dword [esp + 0x56], 0
mov byte [esp + 0x5a], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x22
ja 0x4234a6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x1c5e333f]
add eax, 0x3f
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
mov ecx, eax
xor ecx, 0x46
and eax, 0x46
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x23
jb 0x423460
mov ecx, dword [ebp + 8]
push esi
push ebx
lea eax, [esp + 0x40]
push eax
call fcn.004095a0
jmp dword [0x44379c]
push ebx
mov esi, eax
call fcn.00408a60
mov eax, esi
add esp, 4
jmp dword [0x4437a8]
mov ebx, eax
and bl, 1
jmp dword [0x4437b0]
mov ebx, eax
and bl, 1
jmp dword [0x4437b0]
jmp dword [0x4437b8]
mov esi, dword [esp + 4]
test esi, esi
je case.0x4227b9.157
cmp esi, edi
jne 0x423514
jmp case.0x4227b9.157
cmp esi, edi
je 0x42355b
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x423510
push eax
call fcn.00408a60
add esp, 4
jmp 0x423510
lea eax, [esp + 0x9c]
push 0
push eax
push dword [esp + 0xa0]
call fcn.0043b760
add esp, 0xc
not eax
shr eax, 0x1f
xor ecx, ecx
mov ebx, dword [esp + 0x14]
mov edi, ebx
jmp dword [eax*4 + 0x443694]
jmp dword [0x44369c]
push dword [esp + 4]
call fcn.00408a60
add esp, 4
xor edi, edi
mov dword [esp + 4], 0
jmp case.0x4227b9.157
push dword [esp + 4]
call fcn.00408a60
add esp, 4
xor edi, edi
mov dword [esp + 4], 0
jmp dword [0x4437bc]
mov esi, dword [esp + 4]
test esi, esi
je 0x423596
cmp esi, edi
jne 0x4235b4
jmp 0x423596
cmp esi, edi
je 0x423580
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x4235b0
push eax
call fcn.00408a60
add esp, 4
jmp 0x4235b0
push eax
push 1
push dword [0x4476a4]
push ecx
call fcn.00438e70
add esp, 0x10
mov edi, ebx
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x28]
jmp dword [0x44367c]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x4436c4]
mov edx, dword [ecx]
cmp dword [ecx + 0x18], 3
mov ebx, 0
jne case.default.0x42361a
mov ebx, dword [ecx + 0x10]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x4436cc]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x4436d4]
mov dword [esp + 0x10], edx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x24], edi
mov ecx, ebx
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne case.default.0x423681
sub eax, ebx
inc eax
mov ecx, eax
shr ecx, 1
and eax, 2
mov dword [esp + 0xd0], ecx
xor ecx, 1
add ecx, eax
push ecx
call fcn.00408a50
add esp, 4
mov edi, eax
mov eax, dword [case.0x423a5b.11]
mov dword [esp + 0x20], eax
xor eax, eax
cmp byte [ebx], 0
setne al
mov dword [esp + 0xcc], edi
jmp dword [eax*4 + 0x4436dc]
mov eax, esi
mov byte [edi], al
inc edi
xor eax, eax
cmp byte [ebx], 0
setne al
jmp dword [eax*4 + 0x4436dc]
jmp dword [esp + 0x20]
inc ebx
nop
nop
nop
nop
nop
nop
nop
mov edx, ebx
inc ebx
jmp dword [0x4436ec]
movsx eax, byte [edx]
mov esi, eax
and esi, 0xffffffdf
mov ecx, eax
xor ecx, 0x20
add ecx, eax
sub ecx, esi
lea esi, [ecx - 0x61]
add eax, 0xffffffd0
cmp eax, 0xa
jb 0x4236da
mov eax, 0xffffffff
cmp esi, 6
jb 0x4236f0
mov esi, eax
jmp 0x4236f5
add ecx, 0xffffffa9
mov esi, ecx
movsx ecx, byte [edx + 1]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x4436f4]
mov eax, ecx
and eax, 0xffffffdf
mov ebx, ecx
xor ebx, 0x20
add ebx, ecx
sub ebx, eax
lea eax, [ebx - 0x61]
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0x423725
mov ecx, 0xffffffff
shl esi, 4
add edx, 2
cmp eax, 6
jae case.default.0x423744
add ebx, 0xffffffa9
mov ecx, ebx
or ecx, esi
mov byte [edi], cl
inc edi
xor eax, eax
cmp byte [edx], 0
setne al
mov ebx, edx
jmp dword [eax*4 + 0x4436dc]
mov byte [edi], 0
push 0
push 0x10
push 0
push dword [esp + 0x1c]
call fcn.00425120
add esp, 0x10
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], 0
mov ecx, dword [case.0x423a5b.27]
xor ebx, ebx
mov esi, dword [esp + 4]
cmp esi, dword [esp + 0x2c]
setne bl
jmp dword [ebx*4 + 0x4436fc]
mov edi, dword [esi + 4]
mov ebx, edi
shr ebx, 0x1c
shl edi, 4
or edi, 1
xor ebx, edx
xor edi, dword [esp + 0x20]
xor eax, eax
or edi, ebx
sete al
jmp dword [eax*4 + 0x443714]
mov edi, 1
jmp case.0x423a5b.24
mov eax, dword [esi]
mov dword [esp + 0x10], eax
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
jmp dword [edi*4 + 0x44372c]
add esi, 8
xor ebx, ebx
cmp esi, dword [esp + 0x2c]
setne bl
jmp dword [ebx*4 + 0x4436fc]
jmp dword [0x443710]
mov eax, dword [case.0x423a5b.33]
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
mov esi, dword [esp + 0x10]
test esi, esi
setne al
mov edi, dword [esp + 0x24]
jmp dword [eax*4 + 0x443744]
jmp dword [0x443754]
push dword [esp + 0xcc]
call fcn.00408a60
add esp, 4
mov eax, dword [case.0x42361a.0]
mov ecx, dword [esp + 0x94]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x3c], eax
mov eax, 0xffffffff
nop
nop
nop
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x4238b5
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
push 0x932a8d34
push dword [0x4476a8]
call fcn.0043a8f0
add esp, 8
lea ecx, [esp + 0x18]
lea edx, [esp + 8]
push edx
push 1
push 0
push 0
push ecx
push 0
lea ecx, [esp + 0x50]
push ecx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44374c]
jmp dword [0x443754]
movzx eax, byte [esi]
test al, al
je 0x4238db
inc esi
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x4238d0
mov word [edi], 0x203a
mov eax, edi
add eax, 2
mov esi, dword [esp + 8]
test esi, esi
je 0x423915
mov ecx, dword [esp + 0xc]
mov edx, esi
and edx, 3
je 0x423919
xor edi, edi
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + edi], bl
inc edi
cmp edx, edi
jne 0x4238fa
add eax, edi
mov edx, esi
sub edx, edi
mov edi, eax
jmp 0x42391b
mov edi, eax
jmp 0x423959
mov edx, esi
cmp esi, 4
jb 0x423959
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 1], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 2], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
lea edi, [eax + 4]
mov byte [eax + 3], bl
mov eax, edi
add edx, 0xfffffffc
jne 0x423920
mov byte [edi], 0xa
inc edi
push 0x2e0ec9bb
push dword [0x447690]
call fcn.0043a8f0
add esp, 8
push dword [esp + 0xc]
call eax
mov al, 1
mov dword [esp + 0x28], eax
jmp dword [0x443754]
mov dword [esp + 0x38], 0x87948ee3
mov dword [esp + 0x3c], 0x92849483
mov dword [esp + 0x40], 0xb7abdff7
mov dword [esp + 0x44], 0xdcf1a8ba
mov dword [esp + 0x48], 0xbea3a4b4
mov dword [esp + 0x4c], 0xb9b9c6fb
mov dword [esp + 0x50], 0xafb9bca6
mov dword [esp + 0x54], 0xa7bdbcdf
mov word [esp + 0x58], 0x11b5
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov byte [esp + 0x62], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x2a
ja 0x423a35
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x579dc058]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x579dc057
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x98
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x2b
jb 0x4239f0
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0xc8]
lea eax, [esp + 0x38]
push eax
call fcn.00424f10
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x28], 0
mov edi, esi
jmp dword [ecx*4 + 0x4436bc]
add eax, 8
mov dword [esp + 0x28], 0
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
mov edi, dword [esp + 0x14]
jmp dword [eax*4 + 0x4436c4]
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0x90]
mov byte [edi + esi], 0
push 0x20
call fcn.00408a50
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 + 0xc8], eax
mov ecx, eax
push esi
push edi
call fcn.00424d20
movzx eax, al
mov dword [esp + 0x28], 0
mov edi, ebx
jmp dword [eax*4 + 0x4436b4]
mov ecx, dword [esp + 0x28]
jmp dword [0x44376c]
mov esi, dword [esp + 0xc8]
mov ecx, esi
call fcn.00425080
push esi
call fcn.00408a60
add esp, 4
mov ecx, dword [esp + 0x28]
jmp dword [0x443774]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x98]
mov dword [esp + 0x38], 0xfcfdfeff
mov dword [esp + 0x3c], 0
mov byte [esp + 0x40], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 8
ja 0x423b9c
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x1b0880a0]
lea edi, [ecx + 0xa0]
xor edi, esi
and esi, edx
and edi, edx
add ecx, edx
add ecx, 0x1b0880a0
lea edx, [edi + esi*2]
sub ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
add cl, 0xa0
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 9
jb 0x423b50
mov ecx, dword [0x44769c]
test ecx, ecx
je 0x423bd8
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x4476a0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x423bd0
inc esi
cmp ecx, esi
jne 0x423bc0
jmp 0x423bd8
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x423c00
mov ebx, dword [esp + 0x28]
jmp dword [0x44378c]
mov eax, ebx
and al, 1
movzx ecx, al
mov edi, dword [esp + 0x2c]
mov eax, ebx
jmp dword [ecx*4 + 0x443794]
mov ebx, dword [esp + 0x14]
jmp dword [0x44379c]
push eax
push 1
push dword [0x4476a4]
push ecx
call fcn.00438e70
add esp, 0x10
mov ebx, dword [esp + 0x28]
jmp dword [0x44378c]
jmp dword [0x443774]
push dword [esp + 0x90]
mov esi, ecx
call fcn.00408a60
mov ecx, esi
add esp, 4
mov eax, dword [case.0x4227b9.84]
nop
nop
nop
nop
nop
nop
jmp eax
mov esi, dword [esp + 0x9c]
lea eax, [esi + 1]
push eax
call fcn.00408a50
add esp, 4
push 0
push esi
push eax
push dword [esp + 0xa4]
call fcn.0043b860
add esp, 0x10
mov esi, dword [esp + 0x9c]
lea eax, [esi + 1]
push eax
call fcn.00408a50
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0xa4]
call fcn.0043b860
add esp, 0x10
jmp dword [0x4436a4]
mov dword [esp + 0x90], edi
not eax
shr eax, 0x1f
xor ecx, ecx
mov edi, ebx
jmp dword [eax*4 + 0x4436ac]
mov eax, dword [case.0x4227b9.200]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x44386c]
push dword [esp + 0x74]
call fcn.00408a60
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x44387c]
mov eax, dword [esp + 0x78]
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0xc4]
inc ecx
xor eax, eax
cmp ecx, 3
setne al
jmp dword [eax*4 + 0x4437c4]
mov dword [esp + 0xc4], ecx
mov eax, dword [esp + ecx*4 + 0x114]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [eax + esi + 2], 0
lea esi, [esi + 2]
jne 0x424150
mov dword [esp + 0x6c], eax
mov ebx, esi
sar ebx, 1
mov dword [esp + 0x10], 0x7ba4798a
mov dword [esp + 0x14], 0x7f997d8b
mov dword [esp + 0x18], 0x738c719d
mov dword [esp + 0x1c], 0x77a17552
mov dword [esp + 0x20], 0xbeb0982
mov dword [esp + 0x24], 0xfeb0dfe
mov word [esp + 0x28], 0x10e
lea eax, [esp + 0x28]
mov word [eax + 0xe], 0
mov dword [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x50]
cmp eax, 0x27
ja 0x424215
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax - 0x7d894d1]
and edx, ecx
add eax, ecx
add eax, 0xf8276b2f
add edx, edx
sub eax, edx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0xb7
mov ecx, dword [esp + 0x50]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x50]
mov eax, dword [esp + 0x50]
cmp eax, 0x28
jb 0x4241d0
lea edi, [esp + 0xf8]
lea eax, [esp + 0x10]
mov ecx, 6
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x28]
lea edi, [esp + 0x110]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebx + eax]
lea edx, [ebx + eax]
add edx, 0xd
lea eax, [ecx + ecx]
add eax, 0x1a
test edx, edx
jns 0x42425d
mov eax, 0xffffffff
push eax
call fcn.00408a50
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x74]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x424291
mov edx, dword [esp + 0xb0]
mov eax, edi
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424280
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esp + 0x6c]
movzx ecx, word [edx]
test cx, cx
je 0x4242c1
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4242b0
mov word [eax], 0
movzx ecx, word [esp + 0xf8]
test cx, cx
je 0x4242f1
lea edx, [esp + 0xfa]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4242e0
mov word [eax], 0
lea eax, [esp + 0x84]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.0043b3d0
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp + 0xc0], ebx
jmp dword [eax*4 + 0x4437cc]
xor ebx, ebx
jmp dword [0x44382c]
push edi
call fcn.00408a60
add esp, 4
movzx eax, bl
jmp dword [eax*4 + 0x443834]
mov dword [esp + 0xb4], edi
mov edi, dword [esp + 0x84]
jmp dword [0x4437d4]
xor ebx, ebx
mov edi, dword [esp + 0xac]
mov esi, dword [esp + 0xa8]
jmp dword [0x44380c]
lea eax, [esp + 0x80]
push 0
push eax
push edi
call fcn.0043b760
add esp, 0xc
lea eax, [esp + 0x80]
push 0
push eax
push edi
call fcn.0043b760
add esp, 0xc
jmp dword [0x4437dc]
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x4437e4]
mov edi, dword [esp + 0x80]
lea eax, [edi + 1]
push eax
call fcn.00408a50
add esp, 4
push 0
push edi
mov edi, eax
push eax
push dword [esp + 0x90]
call fcn.0043b860
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x4437ec]
mov eax, dword [esp + 0x80]
mov byte [edi + eax], 0
push edi
call fcn.00401e80
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4437f4]
xor ebx, ebx
jmp 0x424849
mov dword [esp + 0xac], edi
mov dword [esp + 0xbc], eax
push eax
call fcn.00402850
add esp, 4
mov dword [esp + 0x10], 0xf489e2ff
mov dword [esp + 0x14], 0xebf6e0e6
mov dword [esp + 0x18], 0xfcf0f8b6
mov dword [esp + 0x1c], 0x938ee8ee
mov dword [esp + 0x20], 0x8cf98181
mov word [esp + 0x24], 0x9085
mov byte [esp + 0x26], 0x16
mov dword [esp + 0x27], 0
mov dword [esp + 0x50], 0
mov ecx, dword [esp + 0x50]
cmp ecx, 0x1a
ja 0x4244c6
nop
nop
nop
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x50]
movzx edx, byte [esp + edx + 0x10]
lea edi, [ecx + 0xb2]
and edi, edx
add ecx, edx
add edi, edi
sub ecx, edi
add ecx, 0x1039a9b2
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0xc8]
add cl, 0x22
mov edx, dword [esp + 0x50]
mov byte [esp + edx + 0x10], cl
mov ecx, dword [esp + 0x50]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x50]
cmp ecx, 0x1b
jb 0x424470
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.004028f0
add esp, 8
mov edx, 0xffffffff
mov ecx, 0xfffffffd
nop
nop
add ecx, 3
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
jne 0x4244e0
shr ecx, 2
mov edi, edx
mov dword [esp + 0x68], edx
movzx edx, byte [eax + edx - 1]
cmp edx, 0x3d
je 0x424505
cmp edx, 0x2e
jne 0x42450c
mov edx, ecx
not edx
lea ecx, [edx + ecx*2]
mov edx, dword [esp + 0x68]
movzx edx, byte [eax + edx - 2]
cmp edx, 0x3d
mov dword [esp + 0x7c], eax
mov dword [esp + 0xa8], esi
je 0x42452a
cmp edx, 0x2e
jne 0x42452b
dec ecx
mov dword [esp + 0xb8], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408a50
add esp, 4
mov dword [esp + 0x64], eax
cmp dword [esp + 0x68], 0
je 0x42464e
xor esi, esi
mov edi, 2
jmp 0x424572
mov ecx, dword [esp + 0x70]
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
mov esi, ecx
cmp edi, edx
mov edi, eax
jae 0x42464e
mov ebx, dword [esp + 0x7c]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00418790
add esp, 4
mov byte [esp + 0x48], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00418790
mov edx, dword [esp + 0x6c]
add esp, 4
movzx ecx, byte [esp + 0x48]
shl cl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, cl
mov ecx, dword [esp + 0x64]
mov byte [ecx + esi], ah
lea ecx, [esi + 1]
cmp edi, edx
jae 0x424560
mov byte [esp + 0x70], al
mov dword [esp + 0x48], esi
mov eax, dword [esp + 0x7c]
movzx eax, byte [eax + edi]
push eax
mov ebx, ecx
call fcn.00418790
mov ecx, ebx
mov edx, dword [esp + 0x6c]
add esp, 4
cmp al, 0x40
je 0x424560
movzx ecx, byte [esp + 0x70]
shl cl, 4
mov ah, al
shr ah, 2
and ah, 0xf
or ah, cl
mov ebx, dword [esp + 0x48]
lea ecx, [ebx + 2]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x64]
mov byte [ecx + ebx + 1], ah
mov ebx, eax
lea eax, [edi + 1]
cmp eax, edx
jae 0x424556
mov eax, dword [esp + 0x7c]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00418790
mov edx, dword [esp + 0x6c]
add esp, 4
cmp al, 0x40
mov ecx, dword [esp + 0x70]
je 0x424560
shl bl, 6
add al, bl
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x48]
mov byte [ecx + ebx + 2], al
add ebx, 3
mov ecx, ebx
jmp 0x424560
mov eax, dword [esp + 0xb8]
add eax, 0xfffffffb
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x64]
add eax, 5
mov dword [esp + 0x54], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
push 0x932a8d34
push dword [0x4476a8]
call fcn.0043a8f0
add esp, 8
lea ecx, [esp + 8]
lea edx, [esp + 0x50]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4437fc]
mov dword [esp + 0x10], 0x836885b7
mov dword [esp + 0x14], 0x8fb28172
mov dword [esp + 0x18], 0x8b748d72
mov dword [esp + 0x1c], 0x97888976
lea ebx, [esp + 0x20]
mov byte [ebx + 2], 0
mov word [ebx], 0
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x4c]
cmp eax, 0x12
mov esi, dword [esp + 0xa8]
ja 0x424740
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
movzx edx, byte [esp + ecx + 0x10]
mov ecx, 0xead9e9be
sub ecx, eax
add eax, 0x41
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 4]
add al, 0x39
mov ecx, dword [esp + 0x4c]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
cmp eax, 0x13
jb 0x424700
lea edi, [esp + 0xc8]
lea eax, [esp + 0x10]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
lea edi, [esp + 0xd8]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esi + 0x10]
cmp esi, 0xffffffef
jge 0x424771
mov eax, 0xffffffff
push eax
call fcn.00408a50
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x6c]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x4247b1
mov eax, dword [esp + 0x6c]
lea edx, [eax + 2]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4247a0
mov word [eax], 0
movzx ecx, word [esp + 0xc8]
test cx, cx
je 0x4247e1
lea edx, [esp + 0xca]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4247d0
mov word [eax], 0
mov ecx, dword [ebp + 8]
push dword [esp + 8]
push dword [esp + 0x10]
push edi
call fcn.004093f0
mov ebx, eax
jmp dword [0x443804]
push edi
call fcn.00408a60
add esp, 4
push 0x2e0ec9bb
push dword [0x447690]
call fcn.0043a8f0
add esp, 8
push dword [esp + 0xc]
call eax
mov edi, dword [esp + 0xac]
jmp dword [0x44380c]
push dword [esp + 0x64]
call fcn.00408a60
add esp, 4
push dword [esp + 0xbc]
call fcn.00402ab0
add esp, 4
mov eax, dword [case.0x4227b9.170]
nop
nop
jmp eax
jmp dword [0x443824]
push edi
call fcn.00408a60
add esp, 4
mov eax, dword [esp + 0x84]
mov dword [esp + 0x48], eax
mov dword [esp + 0x10], 0xfcfdfeff
lea eax, [esp + 0x28]
mov byte [eax - 0x10], 0
mov dword [eax - 0x14], 0
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x50]
cmp eax, 8
ja 0x4248f0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x1b0880a0]
lea edi, [eax + 0xa0]
xor edi, edx
and edx, ecx
and edi, ecx
add eax, ecx
add eax, 0x1b0880a0
lea ecx, [edi + edx*2]
sub eax, ecx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0xa0
mov ecx, dword [esp + 0x50]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x50]
mov eax, dword [esp + 0x50]
cmp eax, 9
jb 0x4248a0
mov ecx, dword [0x44769c]
test ecx, ecx
je 0x424930
mov edx, dword [esp + 0x10]
xor edi, edi
mov eax, dword [0x4476a0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0x11081610
je 0x424920
inc edi
cmp ecx, edi
jne 0x424910
jmp 0x424930
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
jne 0x424cf2
nop
nop
nop
nop
mov edi, dword [esp + 0xb4]
jmp dword [0x44382c]
movzx eax, bl
jmp dword [eax*4 + 0x443834]
mov dword [esp + 0x10], 0xa3d4a1c2
mov dword [esp + 0x14], 0xdf41dd33
mov dword [esp + 0x18], 0xdb4cd9bd
mov dword [esp + 0x1c], 0xd7b9d5fa
mov dword [esp + 0x20], 0xd341d15a
mov dword [esp + 0x24], 0xcfafcd40
mov dword [esp + 0x28], 0xcb57c957
mov dword [esp + 0x2c], 0xc750c5ae
mov dword [esp + 0x30], 0xc34ec159
mov dword [esp + 0x34], 0xff68fd5d
mov dword [esp + 0x38], 0xfb9af962
mov word [esp + 0x3c], 0xf5fa
lea eax, [esp + 0x28]
mov byte [eax + 0x18], 0
mov word [eax + 0x16], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x30
ja 0x424a10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + ecx]
add edx, 0x1681bcbb
add eax, 0x1681bcbb
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x50]
add al, 0xe3
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x31
jb 0x4249d0
lea edi, [esp + 0xc8]
lea eax, [esp + 0x10]
mov ecx, 0xb
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x3c]
lea edi, [esp + 0xf4]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0xc0]
lea ecx, [edx + eax]
add edx, eax
add edx, 0x17
lea eax, [ecx + ecx]
add eax, 0x2e
test edx, edx
jns 0x424a5e
mov eax, 0xffffffff
push eax
call fcn.00408a50
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x74]
movzx ecx, word [eax]
mov eax, ebx
test cx, cx
je 0x424a91
mov edx, dword [esp + 0xb0]
mov eax, ebx
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424a80
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esp + 0x6c]
movzx ecx, word [edx]
test cx, cx
je 0x424ac1
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424ab0
mov word [eax], 0
movzx ecx, word [esp + 0xc8]
test cx, cx
je 0x424af1
lea edx, [esp + 0xca]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424ae0
mov word [eax], 0
mov dword [esp + 0x10], 0x7b047957
mov dword [esp + 0x14], 0x7f0a7d1d
mov dword [esp + 0x18], 0x730c7119
mov dword [esp + 0x1c], 0x77167516
mov word [esp + 0x20], 0x8976
lea eax, [esp + 0x28]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [eax - 2], 0
mov dword [eax - 6], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x1f
ja 0x424b90
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + ecx]
add edx, 0xa86d1eef
add eax, 0xa86d1eef
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
add al, 0x77
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x20
jb 0x424b50
lea edi, [esp + 0x50]
lea eax, [esp + 0x10]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x20]
lea edi, [esp + 0x60]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esi + 0x12]
cmp esi, 0xffffffed
jge 0x424bc0
mov eax, 0xffffffff
push eax
call fcn.00408a50
add esp, 4
mov edi, eax
mov edx, dword [esp + 0x6c]
movzx ecx, word [edx]
test cx, cx
je 0x424bf1
add edx, 2
mov eax, edi
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424be0
mov word [eax], 0
movzx ecx, word [esp + 0x50]
test cx, cx
je 0x424c21
lea edx, [esp + 0x52]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424c10
mov word [eax], 0
mov dword [esp + 0x10], 0x636465b0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xb
ja 0x424c90
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x11]
and edx, ecx
mov esi, 0x3c6503ee
sub esi, eax
or esi, ecx
not esi
add esi, ecx
sub esi, edx
mov dword [esp + 8], esi
mov eax, dword [esp + 8]
add al, 0x89
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xc
jb 0x424c50
push 0
push 0
push 0
push 0xc00000
lea eax, [esp + 0x20]
push eax
push ebx
push edi
push dword [ebp + 8]
call fcn.0041b080
add esp, 0x20
mov ecx, dword [esp + 0x78]
and cl, 1
or cl, al
mov dword [esp + 0x78], ecx
jmp dword [0x44383c]
push edi
call fcn.00408a60
add esp, 4
jmp dword [0x443844]
jmp dword [0x443844]
push ebx
call fcn.00408a60
add esp, 4
mov eax, dword [case.0x4227b9.188]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
push dword [esp + 0x48]
push 1
push dword [0x4476a4]
push eax
call fcn.00438e70
add esp, 0x10
mov edi, dword [esp + 0xb4]
jmp dword [0x44382c]