Function at 0x422280
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x470
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x68], 0xb306b103
mov dword [esp + 0x6c], 0xb717b511
mov dword [esp + 0x70], 0x8bf48935
mov dword [esp + 0x74], 0x8f068d29
mov dword [esp + 0x78], 0x83828125
mov dword [esp + 0x7c], 0
mov word [esp + 0x80], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x19
ja 0x422346
nop
nop
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 + 0x68]
mov edx, eax
and edx, 0x2d416f18
xor eax, 0x2d416f18
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0x58
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x68], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x1a
jb 0x422300
lea edi, [esp + 0x68]
lea ecx, [esp + 0x4c]
push edi
call fcn.004361e0
shr eax, 0x1f
jmp dword [eax*4 + 0x4429ec]
lea ecx, [esp + 0x4c]
push 0x410
call fcn.00436450
not eax
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x442a04]
mov dword [esp + 0x68], 0x9ab354a9
mov dword [esp + 0x6c], 0x6c9ab994
mov dword [esp + 0x70], 0x90699bbd
mov dword [esp + 0x74], 0x876e96b1
mov dword [esp + 0x78], 0x74abba86
mov dword [esp + 0x7c], 0x8fa8a6a9
mov dword [esp + 0x80], 0x828dae82
mov dword [esp + 0x84], 0x86af809b
mov dword [esp + 0x88], 0x5664969a
mov dword [esp + 0x8c], 0x7e534165
mov dword [esp + 0x90], 0x1b4a5d5d
mov dword [esp + 0x94], 0
mov byte [esp + 0x98], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x30
ja 0x42244d
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 + 0x68]
lea edx, [eax - 0x22aba822]
add eax, 0xde
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0xee
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x68], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x31
jb 0x422410
lea eax, [esp + 0x10]
lea ecx, [esp + 0x4c]
push 0
push 0x2b
push edi
push eax
call fcn.004369e0
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
xor eax, eax
cmp ebx, esi
sete al
jmp dword [eax*4 + 0x442a0c]
mov eax, esi
sub eax, ebx
sar eax, 2
imul eax, eax, 0x421
push eax
call fcn.00408d40
add esp, 4
mov dword [esp + 0x5c], 0
xor ecx, ecx
mov dword [esp + 0x64], esi
cmp ebx, esi
setne cl
mov dword [esp + 0x28], 0
mov dword [esp + 0x44], eax
mov esi, eax
jmp dword [ecx*4 + 0x442a14]
mov ecx, dword [esp + 0x28]
mov eax, ecx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x442acc]
mov edi, dword [esp + 0x44]
jmp dword [0x442ad4]
push edi
mov esi, ecx
call fcn.00408d50
mov ecx, esi
add esp, 4
and cl, 1
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
test ebx, ebx
jne 0x422948
jmp case.0x422357.5
xor ecx, ecx
jmp dword [0x442a00]
add ebx, 4
xor eax, eax
cmp ebx, dword [esp + 0x64]
setne al
jmp dword [eax*4 + 0x442a14]
mov dword [esp + 8], esi
mov esi, dword [ebx]
push 0x400
push 0
push edi
call fcn.00408dd0
add esp, 0xc
lea eax, [esp + 0x30]
lea ecx, [esp + 0x4c]
push eax
push 0x400
push edi
push esi
call fcn.00436870
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
mov eax, 3
jmp dword [ecx*4 + 0x442a1c]
xor ecx, ecx
cmp dword [esp + 0x30], 0
sete cl
jmp dword [ecx*4 + 0x442a24]
xor eax, eax
mov ecx, 1
mov esi, dword [esp + 8]
jmp dword [ecx*4 + 0x442a2c]
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x5c]
jmp dword [ecx*4 + 0x442a2c]
mov byte [esp + 0x467], 0
movzx ecx, byte [esp + 0x68]
xor eax, eax
test cl, cl
mov dword [esp + 0x60], ebx
je 0x4225d2
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x4225d0
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x4225c0
jmp 0x4225d2
mov eax, edx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442a34]
lea edx, [eax + 1]
movzx ecx, byte [eax + 1]
xor ebx, ebx
test cl, cl
mov dword [esp + 0x20], edx
je 0x422612
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x422610
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x422600
jmp 0x422612
mov ebx, edx
mov ecx, dword [case.0x4225d9.4]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov ecx, dword [case.0x4225d9.8]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov ecx, dword [case.0x4225d9.12]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test ebx, ebx
setne cl
jmp dword [ecx*4 + 0x442a6c]
mov ecx, ebx
mov esi, dword [esp + 0x20]
sub ecx, esi
lea edx, [ecx + ecx*2]
shr edx, 2
movzx eax, byte [eax + ecx]
cmp eax, 0x3d
je 0x42266c
cmp eax, 0x2e
jne 0x42266d
dec edx
movzx eax, byte [ecx + esi - 2]
cmp eax, 0x3d
mov dword [esp + 0x2c], ecx
je 0x422680
cmp eax, 0x2e
jne 0x422681
dec edx
mov dword [esp + 0x58], edx
lea eax, [edx + 1]
push eax
call fcn.00408d40
add esp, 4
mov dword [esp + 0x1c], eax
cmp ebx, esi
je 0x422791
xor esi, esi
mov edi, 2
jmp 0x4226c2
mov edx, dword [esp + 0x48]
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
mov esi, edx
cmp edi, ecx
mov edi, eax
jae 0x422791
mov ebx, dword [esp + 0x20]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.004187f0
add esp, 4
mov byte [esp + 0x24], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.004187f0
add esp, 4
mov bh, al
movzx ecx, byte [esp + 0x24]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 0x1c]
mov byte [ecx + esi], al
lea edx, [esi + 1]
mov ecx, dword [esp + 0x2c]
cmp edi, ecx
jae 0x4226b0
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + edi]
push eax
mov esi, edx
call fcn.004187f0
mov edx, esi
mov ecx, dword [esp + 0x30]
add esp, 4
cmp al, 0x40
je 0x4226b0
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov esi, dword [esp + 0x24]
lea edx, [esi + 2]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x1c]
mov byte [edx + esi + 1], al
lea eax, [edi + 1]
cmp eax, ecx
jae 0x4226a6
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.004187f0
mov ecx, dword [esp + 0x30]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x48]
je 0x4226b0
shl bl, 6
add al, bl
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov byte [edx + esi + 2], al
add esi, 3
mov edx, esi
jmp 0x4226b0
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x1c]
mov byte [esi + eax], 0
push esi
call fcn.00401e30
add esp, 4
mov ebx, eax
jmp dword [0x442a74]
push esi
call fcn.00408d50
add esp, 4
push ebx
call fcn.00402720
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
lea edi, [esp + 0x68]
jmp dword [ecx*4 + 0x442a7c]
mov esi, dword [esp + 8]
jmp 0x4228d6
mov dword [esp + 0x30], 0x9b38040b
lea ecx, [esp + 0x34]
mov word [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0xd
ja 0x422852
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + edx]
add esi, 0xe6d150ec
add ecx, 0xe6d150ec
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 4]
add cl, 0x8c
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0xe
jb 0x422810
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.00402670
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442a84]
mov esi, dword [esp + 8]
jmp 0x422899
movzx ecx, byte [eax]
test cl, cl
je 0x42288d
inc eax
mov esi, dword [esp + 8]
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x422880
jmp 0x422891
mov esi, dword [esp + 8]
mov word [esi], 0x203a
add esi, 2
movzx eax, byte [esp + 0x68]
test al, al
je 0x4228bb
lea ecx, [esp + 0x69]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4228b0
mov byte [esi], 0xa
inc esi
mov eax, dword [esp + 0x28]
and al, 1
movzx eax, al
mov ecx, eax
xor ecx, 1
add ecx, eax
setne al
mov dword [esp + 0x28], eax
push ebx
call fcn.004029b0
add esp, 4
mov ecx, dword [case.0x42246f.8]
mov ebx, dword [esp + 0x60]
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
jmp ecx
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442a9c]
jmp 0x422912
xor eax, eax
mov ecx, dword [case.0x422867.10]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
cmp eax, 3
sete cl
jmp dword [ecx*4 + 0x442ab4]
mov eax, dword [case.0x422867.13]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
test ebx, ebx
je case.0x422357.5
cmp ebx, esi
je case.0x422357.5
push ebx
mov esi, ecx
call fcn.00408d50
mov ecx, esi
add esp, 4
mov ebx, ecx
lea ecx, [esp + 0x4c]
call fcn.00436590
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp + 8]
mov byte [esi], 0
mov edi, dword [esp + 0x44]
sub esi, edi
mov ebx, esi
mov dword [esp + 0x68], 0x77747549
mov dword [esp + 0x6c], 0x736f6c75
mov dword [esp + 0x70], 0x767e7c79
mov dword [esp + 0x74], 0x7c74543b
mov dword [esp + 0x78], 0x4f256679
mov dword [esp + 0x7c], 0x6d7b6463
mov dword [esp + 0x80], 0x63602f63
mov word [esp + 0x84], 0x1966
mov dword [esp + 0x86], 0
mov dword [esp + 0x8a], 0
mov word [esp + 0x8e], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x27
ja 0x422a47
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x68]
lea esi, [eax - 0x4acaa4ff]
inc eax
and eax, edx
or esi, edx
sub esi, eax
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x30]
mov edx, eax
xor edx, 0xf8
and eax, 0x78
lea eax, [edx + eax*2]
inc al
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x68], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x28
jb 0x422a00
lea eax, [esp + 0x68]
push ebx
push edi
push eax
call fcn.00409800
mov ecx, eax
jmp dword [0x442ad4]
xor edx, edx
test esi, esi
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x442b54]
jmp dword [ecx*4 + 0x442adc]
mov dword [esp + 0x38], 0x439241a2
mov dword [esp + 0x3c], 0x5f855d9d
mov dword [esp + 0x40], 0x5bb55985
mov dword [esp + 0x44], 0x578655b6
mov dword [esp + 0x48], 0x53b451bd
mov dword [esp + 0x4c], 0x6faf6d85
mov dword [esp + 0x50], 0x6bb069b3
mov dword [esp + 0x54], 0x67b265b1
mov dword [esp + 0x58], 0x638461b9
mov dword [esp + 0x5c], 0x7fad7d8f
mov dword [esp + 0x60], 0x7b9479a0
mov dword [esp + 0x64], 0x77b77593
mov dword [esp + 0x68], 0x73af71a4
mov dword [esp + 0x6c], 0xfe20d96
mov dword [esp + 0x70], 0xbfc09ed
mov dword [esp + 0x74], 0x7fb0584
mov dword [esp + 0x78], 0x3ed01e2
mov dword [esp + 0x7c], 0x1fe31d8e
mov dword [esp + 0x80], 0x1bef19fd
mov word [esp + 0x84], 0x151a
mov dword [esp + 0x86], 0
mov dword [esp + 0x9c], 0
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x51
ja 0x422bd7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x9c]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + edx]
add esi, 0x5c83328b
add ecx, 0x5c83328b
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xdc], esi
mov ecx, dword [esp + 0xdc]
add cl, 0x33
mov edx, dword [esp + 0x9c]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x52
jb 0x422b80
lea ecx, [esp + 4]
lea edx, [esp + 0x38]
push 0
push 0
push eax
push ecx
push edx
call fcn.0043acf0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x442ae4]
mov dword [esp], edi
lea edi, [esp + 0x94]
lea eax, [esp + 0xc]
push edi
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x24]
call fcn.0043b100
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442aec]
mov ecx, dword [esp + 0x94]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x422c41
mov eax, 0xffffffff
push eax
call fcn.00408d40
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
lea eax, [esp + 0x50]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x9c], 0
mov eax, dword [esp + 0x9c]
cmp eax, 0x1d
ja 0x422d01
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x30]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x9ee64930
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xdc]
add al, 0xb0
mov ecx, dword [esp + 0x9c]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0x9c]
mov eax, dword [esp + 0x9c]
cmp eax, 0x1e
jb 0x422cb0
push edi
push esi
push 0
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x14]
call fcn.0043b7a0
add esp, 0x14
shr eax, 0x1f
mov dword [esp], esi
jmp dword [eax*4 + 0x442af4]
mov eax, dword [case.0x422d1c.5]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esp], 0
jmp dword [0x442b0c]
push esi
call fcn.00408d50
add esp, 4
mov dword [esp], 0
jmp dword [0x442b18]
mov esi, 4
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x442b44]
jmp dword [0x442b18]
mov eax, dword [esp + 4]
mov dword [esp + 0x38], 0x2050407
lea ecx, [esp + 0x50]
mov dword [ecx - 0x11], 0
mov dword [ecx - 0x14], 0
mov dword [esp + 0x9c], 0
mov ecx, dword [esp + 0x9c]
cmp ecx, 0xa
ja 0x422e33
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
movzx esi, byte [esp + ecx + 0x38]
lea edi, [edx + 0x3e506d01]
lea ecx, [edx + esi]
add ecx, 0x3e506d01
and edi, esi
mov ebx, 0xc1af92fe
sub ebx, edx
or ebx, esi
add ebx, edx
lea edx, [edi + ebx]
add edx, 0x3e506d02
mov esi, ecx
not esi
and esi, edx
not edx
and edx, ecx
sub edx, esi
mov dword [esp + 0xdc], edx
mov ecx, dword [esp + 0xdc]
add cl, 0xf9
mov edx, dword [esp + 0x9c]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
cmp ecx, 0xb
jb 0x422dc0
mov ecx, dword [0x446c20]
test ecx, ecx
je case.0x422d1c.9
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x446c24]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x422e60
inc esi
cmp ecx, esi
jne 0x422e50
jmp case.0x422d1c.9
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x422d1c.9
push eax
push 1
push dword [0x446c28]
push ecx
call fcn.00437df0
add esp, 0x10
jmp case.0x422d1c.9
jmp dword [0x442b20]
mov eax, dword [esp + 4]
mov dword [esp + 0x38], 0x2050407
mov dword [esp + 0x3c], 0
mov dword [esp + 0x3f], 0
mov dword [esp + 0x9c], 0
mov ecx, dword [esp + 0x9c]
cmp ecx, 0xa
ja 0x422f33
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
movzx esi, byte [esp + ecx + 0x38]
lea edi, [edx + 0x3e506d01]
lea ecx, [edx + esi]
add ecx, 0x3e506d01
and edi, esi
mov ebx, 0xc1af92fe
sub ebx, edx
or ebx, esi
add ebx, edx
lea edx, [edi + ebx]
add edx, 0x3e506d02
mov esi, ecx
not esi
and esi, edx
not edx
and edx, ecx
sub edx, esi
mov dword [esp + 0xdc], edx
mov ecx, dword [esp + 0xdc]
add cl, 0xf9
mov edx, dword [esp + 0x9c]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
cmp ecx, 0xb
jb 0x422ec0
mov ecx, dword [0x446c20]
test ecx, ecx
je 0x422e80
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x446c24]
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x422f70
inc esi
cmp ecx, esi
jne 0x422f50
jmp 0x422e80
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x422e80
push eax
push 1
push dword [0x446c28]
push ecx
call fcn.00437df0
add esp, 0x10
jmp 0x422e80
xor eax, eax
mov edi, dword [esp]
test edi, edi
setne al
mov esi, 2
jmp dword [eax*4 + 0x442b24]
lea eax, [esp + 0x38]
push eax
call fcn.0043a200
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x442b2c]
xor eax, eax
cmp dword [esp + 0x38], 1
sete al
jmp dword [eax*4 + 0x442b34]
xor esi, esi
mov eax, 1
jmp dword [eax*4 + 0x442b3c]
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x442b44]
xor eax, eax
jmp dword [eax*4 + 0x442b3c]
xor esi, esi
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x442b44]
xor edx, edx
cmp esi, 4
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x442b4c]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x442b5c]
mov dword [esp], edi
mov dword [esp + 0x38], 0xba50da8
mov dword [esp + 0x3c], 0x17a409bb
mov dword [esp + 0x40], 0x13bb15be
mov dword [esp + 0x44], 0x1fba11bb
mov dword [esp + 0x48], 0x1ba91db3
mov dword [esp + 0x4c], 0x67cc19aa
mov dword [esp + 0x50], 0x63c965cd
mov dword [esp + 0x54], 0x6fd46112
mov dword [esp + 0x58], 0x6bc06dc0
lea eax, [esp + 0x5c]
mov word [esp + 0x5c], 0x6968
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov byte [esp + 0x66], 0
mov dword [esp + 0x9c], 0
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x2e
ja 0x423140
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
movzx esi, byte [esp + ecx + 0x38]
lea ecx, [edx + esi]
add ecx, 0xfd05c52a
mov edi, 0x2fa3ad5
sub edi, edx
lea ebx, [edx + 0x2a]
and ebx, esi
or edi, esi
add edi, edx
lea edx, [ebx + edi]
add edx, 0xfd05c52b
mov esi, edx
xor esi, ecx
not edx
and edx, ecx
add edx, edx
sub edx, esi
mov dword [esp + 0xdc], edx
mov ecx, dword [esp + 0xdc]
add cl, 0xda
mov edx, dword [esp + 0x9c]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x2f
jb 0x4230d0
lea edi, [esp + 0x9c]
lea ebx, [esp + 0x38]
mov edx, ebx
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xc0]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
mov edi, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x423180
cmp eax, 0xffffffd9
jge 0x42319e
mov eax, 0xffffffff
jmp 0x4231a1
xor eax, eax
jmp 0x423365
add eax, 0x26
push eax
call fcn.00408d40
add esp, 4
mov esi, eax
movzx ecx, word [edi]
test cx, cx
je 0x4231d1
lea edx, [edi + 2]
mov eax, esi
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 0x4231c0
mov word [eax], 0
movzx ecx, word [esp + 0x9c]
test cx, cx
je 0x423201
lea edx, [esp + 0x9e]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4231f0
mov word [eax], 0
jmp dword [0x442b64]
push edi
call fcn.00408d50
add esp, 4
lea eax, [esp + 0xc]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.0043a480
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442b6c]
xor edi, edi
xor ebx, ebx
jmp dword [0x442bcc]
lea eax, [esp + 0x94]
push 0
push eax
push dword [esp + 0x14]
call fcn.0043a830
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 0x14], 0
xor edi, edi
jmp dword [eax*4 + 0x442b74]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x94]
lea eax, [esi + 1]
push eax
call fcn.00408d40
add esp, 4
push 0
push esi
mov dword [esp + 0xa0], eax
push eax
push dword [esp + 0x18]
call fcn.0043a930
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esp + 0x14], 0
xor edi, edi
jmp dword [eax*4 + 0x442b7c]
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x98]
mov byte [edi + esi], 0
push 0x20
call fcn.00408d40
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 + 0x34], eax
mov ecx, eax
push esi
push edi
call fcn.00425530
movzx eax, al
mov dword [esp + 0x14], 0
xor edi, edi
jmp dword [eax*4 + 0x442b84]
mov esi, dword [esp + 0x34]
jmp dword [0x442b8c]
xor eax, eax
test edi, edi
je 0x423365
cmp edi, ebx
je 0x423365
mov dword [esp + 0x24], eax
mov esi, edi
jmp 0x423344
cmp esi, ebx
je 0x423358
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x423340
push eax
call fcn.00408d50
add esp, 4
jmp 0x423340
push edi
call fcn.00408d50
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [0x442d10]
nop
nop
nop
nop
nop
jmp ecx
push dword [esp + 0x98]
call fcn.00408d50
add esp, 4
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38], 0x2050407
mov dword [esp + 0x3c], 0
mov dword [esp + 0x3f], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xa
ja 0x423424
nop
nop
mov edx, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx esi, byte [esp + ecx + 0x38]
lea edi, [edx + 0x3e506d01]
lea ecx, [edx + esi]
add ecx, 0x3e506d01
and edi, esi
mov ebx, 0xc1af92fe
sub ebx, edx
or ebx, esi
add ebx, edx
lea edx, [edi + ebx]
add edx, 0x3e506d02
mov esi, ecx
not esi
and esi, edx
not edx
and edx, ecx
sub edx, esi
mov dword [esp + 0xdc], edx
mov ecx, dword [esp + 0xdc]
add cl, 0xf9
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xb
jb 0x4233c0
mov ecx, dword [0x446c20]
test ecx, ecx
mov ebx, dword [esp + 0x14]
je 0x423458
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x446c24]
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x423450
inc esi
cmp ecx, esi
jne 0x423440
jmp 0x423458
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42346c
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
jmp dword [0x442bcc]
jmp dword [0x442bd4]
push eax
push 1
push dword [0x446c28]
push ecx
call fcn.00437df0
add esp, 0x10
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
jmp dword [0x442bcc]
jmp dword [0x442cc4]
mov eax, 0xffffffff
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x18]
lea ecx, [eax + eax]
not ecx
add ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [edi + eax*8 + 4], ecx
add edx, 8
mov dword [esp + 0x14], edx
add ebx, 4
mov ebx, dword [ebx]
xor eax, eax
test ebx, ebx
setne al
mov esi, edi
mov ecx, dword [esp + 0x20]
jmp dword [eax*4 + 0x442bb4]
mov eax, dword [ebx]
mov dword [esp], eax
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x14]
mov edx, eax
sub edx, esi
sar edx, 3
cmp eax, ecx
mov dword [esp + 0x1c], edx
je 0x423525
mov edi, esi
jmp 0x4235a5
mov edi, ecx
lea eax, [edx + 1]
mov ecx, edx
shr ecx, 1
add ecx, edx
cmp ecx, eax
ja 0x423536
mov ecx, eax
mov dword [esp + 0x20], ecx
lea eax, [ecx*8]
push eax
call fcn.00408d40
add esp, 4
mov ebx, eax
test esi, esi
je 0x423591
cmp esi, edi
je 0x423586
xor eax, eax
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
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 0x423560
mov eax, esi
jmp 0x423588
mov eax, edi
push eax
call fcn.00408d50
add esp, 4
mov edx, dword [esp + 0x1c]
lea eax, [ebx + edx*8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
lea ecx, [ebx + eax*8]
mov edi, ebx
mov eax, dword [esp]
mov dword [esp + 0x20], ecx
mov dword [edi + edx*8], 0
mov dword [edi + edx*8 + 4], 0
xor ebx, ebx
nop
nop
nop
mov esi, ebx
inc ebx
cmp byte [eax + esi], 0
jne 0x4235c0
push ebx
call fcn.00408d40
add esp, 4
mov ecx, eax
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x1c]
mov dword [edi + eax*8], ecx
mov eax, ecx
mov ecx, ebx
shr ecx, 2
mov edx, dword [esp]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
add eax, edx
mov edi, eax
add edx, dword [esp]
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov eax, edx
mov dword [esp + 0x24], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x423624
mov eax, ebx
and eax, 2
movzx ecx, byte [edx + eax]
mov edx, dword [esp + 0x24]
mov byte [edx + eax], cl
cmp ebx, 1
je 0x4234c2
lea ecx, [ebx - 1]
cmp ebx, 2
jne 0x42363c
mov eax, 0xffffffff
jmp 0x42367e
and esi, 0xfffffffe
mov eax, 0xffffffff
mov edi, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
shr edx, 8
xor al, byte [edi]
movzx eax, al
xor edx, dword [eax*4 + 0x43d7d0]
mov eax, edx
shr eax, 8
xor dl, byte [edi + 1]
add edi, 2
movzx edx, dl
xor eax, dword [edx*4 + 0x43d7d0]
add esi, 0xfffffffe
jne 0x423650
mov dword [esp], edi
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x18]
test cl, 1
je 0x4234d3
mov ecx, eax
shr ecx, 8
mov esi, dword [esp]
xor al, byte [esi]
movzx eax, al
xor ecx, dword [eax*4 + 0x43d7d0]
mov eax, ecx
jmp 0x4234d3
mov dword [esp + 0x38], 0x47707e63
mov dword [esp + 0x3c], 0x7a486843
mov dword [esp + 0x40], 0x77636f37
mov dword [esp + 0x44], 0x702d7c4a
mov dword [esp + 0x48], 0x6e7b6050
mov dword [esp + 0x4c], 0x6869182b
mov dword [esp + 0x50], 0x5f605867
mov word [esp + 0x54], 0xd15f
mov dword [esp + 0x56], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x21
ja 0x423821
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x4181e122]
add eax, 0x22
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xdc], edx
mov eax, dword [esp + 0xdc]
add al, 0x12
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x22
jb 0x4237e0
mov ecx, esi
push ebx
call fcn.00425720
jmp dword [0x442b98]
mov dword [esp + 0x38], 0x47707e63
mov dword [esp + 0x3c], 0x7a486843
mov dword [esp + 0x40], 0x77636f37
mov dword [esp + 0x44], 0x702d7c4a
mov dword [esp + 0x48], 0x6e7b6050
mov dword [esp + 0x4c], 0x6869182b
mov dword [esp + 0x50], 0x5f605867
mov word [esp + 0x54], 0xd15f
mov dword [esp + 0x56], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x21
ja 0x4238d1
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x4181e122]
add eax, 0x22
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xdc], edx
mov eax, dword [esp + 0xdc]
add al, 0x12
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x22
jb 0x423890
mov ecx, esi
push ebx
call fcn.00425720
jmp case.0x422bf1.42
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
jmp dword [ecx*4 + 0x442b9c]
jmp dword [0x442bbc]
mov esi, dword [esp + 0x34]
mov ecx, esi
call fcn.004258b0
push esi
call fcn.00408d50
add esp, 4
mov esi, dword [esp + 0x30]
jmp dword [0x442bc4]
jmp dword [0x442bb0]
add eax, 8
xor esi, esi
mov ebx, dword [eax]
xor eax, eax
test ebx, ebx
setne al
mov dword [esp + 0x14], 0
xor ecx, ecx
xor edi, edi
jmp dword [eax*4 + 0x442bb4]
mov esi, dword [esp + 0x30]
jmp dword [0x442bc4]
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x442be4]
mov dword [esp + 0x14], ebx
mov eax, ebx
mov dword [esp + 0x2c], edi
sub eax, edi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.00408d40
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], 0xb340b56d
mov dword [esp + 0x3c], 0xaf2db123
mov dword [esp + 0x40], 0xab38ad31
mov dword [esp + 0x44], 0xa738a955
mov dword [esp + 0x48], 0xa358a536
mov dword [esp + 0x4c], 0x5f2ca13d
mov dword [esp + 0x50], 0x5b875dc1
mov dword [esp + 0x54], 0x57b559be
mov dword [esp + 0x58], 0x53cf55da
mov dword [esp + 0x5c], 0x4fc351cd
mov dword [esp + 0x60], 0x4bd84daa
mov dword [esp + 0x64], 0x47d549db
mov dword [esp + 0x68], 0x43d045d9
mov dword [esp + 0x6c], 0x7fca4190
mov dword [esp + 0x70], 0x7be67de2
lea eax, [esp + 0x74]
mov word [esp + 0x74], 0x797a
mov dword [esp + 0x76], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x41
ja 0x423a6d
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x3f212fe9]
mov edi, edx
not edi
or edi, esi
and esi, edx
add esi, edi
neg esi
add ecx, esi
add ecx, 0x3f212fe8
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0xdc]
add cl, 0xa1
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x42
jb 0x423a20
lea esi, [esp + 0xdc]
lea edx, [esp + 0x38]
mov edi, esi
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 ebx, [esp + 0x94]
push ebx
push 0
push 0
push 0x1e
push esi
push 0
call dword [0x446c1c]
mov edi, dword [esp + 0x94]
test edi, edi
jns 0x423abf
mov eax, 0xffffffff
jmp 0x423ac2
lea eax, [edi + edi]
push eax
call fcn.00408d40
add esp, 4
mov esi, eax
push ebx
push edi
push eax
push 0x1e
lea eax, [esp + 0xec]
push eax
push 0
call dword [0x446c1c]
lea eax, [esp + 0xc8]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0xa8], esi
push esi
call fcn.0043a480
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442bec]
xor edx, edx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], esi
lea ebx, [esp + 0x38]
jmp dword [0x442cdc]
lea eax, [esp + 0xd0]
push 0
push eax
push dword [esp + 0xd0]
call fcn.0043a830
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
jmp dword [eax*4 + 0x442bf4]
mov esi, dword [esp + 0xd0]
lea eax, [esi + 1]
push eax
call fcn.00408d40
add esp, 4
push 0
push esi
mov esi, eax
push eax
push dword [esp + 0xd4]
call fcn.0043a930
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esp + 0x24], 0
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x20], edi
jmp dword [eax*4 + 0x442bfc]
mov ebx, esi
mov esi, dword [esp + 0xd0]
mov byte [ebx + esi], 0
push 0x20
call fcn.00408d40
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
mov dword [esp + 0xd8], ebx
push ebx
mov ebx, eax
call fcn.00425530
movzx eax, al
mov dword [esp + 0x24], 0
lea esi, [esp + 0x38]
jmp dword [eax*4 + 0x442c04]
mov dword [esp + 0x38], 0x7f6e745b
mov dword [esp + 0x3c], 0x647e6e7b
mov dword [esp + 0x40], 0x7f6357bf
mov dword [esp + 0x44], 0x4ab96270
mov dword [esp + 0x48], 0x607b7e6a
mov dword [esp + 0x4c], 0x6d615ca3
mov dword [esp + 0x50], 0x6771766c
mov dword [esp + 0x54], 0x4f757657
mov word [esp + 0x58], 0xa54d
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5d], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x28
ja 0x423cdb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax - 0x4079a0bf]
add eax, 0x41
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x39
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x29
jb 0x423ca0
mov ecx, ebx
push esi
call fcn.00425720
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x24], 0
mov edi, dword [esp + 0x1c]
jmp dword [ecx*4 + 0x442c0c]
mov esi, dword [esp + 0xd4]
jmp dword [0x442c9c]
mov ecx, ebx
call fcn.004258b0
push ebx
call fcn.00408d50
add esp, 4
nop
nop
nop
nop
nop
nop
jmp dword [0x442cac]
mov dword [esp + 0x20], edi
mov eax, dword [case.0x422bf1.70]
nop
jmp eax
add eax, 8
mov dword [esp + 0x24], 0
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
mov edi, dword [esp + 0x1c]
mov dword [esp + 0xc4], ebx
jmp dword [eax*4 + 0x442c14]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x442c14]
mov esi, dword [ecx]
cmp dword [ecx + 0x18], 3
jne case.default.0x423d85
mov edx, dword [ecx + 0x10]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x442c1c]
xor edx, edx
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x442c1c]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x442c24]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x20], edi
mov eax, edx
mov ebx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x423df1
sub ecx, ebx
inc ecx
shr ecx, 1
mov dword [esp + 0xd8], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408d40
add esp, 4
movsx ecx, byte [ebx]
xor edx, edx
test ecx, ecx
setne dl
mov dword [esp + 0xcc], eax
jmp dword [edx*4 + 0x442c2c]
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 + 0x442c2c]
mov edx, ecx
or edx, 0x20
lea edi, [edx - 0x61]
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0x423e2c
mov ecx, 0xffffffff
cmp edi, 6
jae case.default.0x423e43
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 + 0x442c34]
mov dword [esp + 0x18], eax
mov ebx, edi
mov edi, edx
or edi, 0x20
lea eax, [edi - 0x61]
mov dword [esp], eax
add edx, 0xffffffd0
cmp edx, 0xa
jb 0x423e68
mov edx, 0xffffffff
shl ecx, 4
add ebx, 2
cmp dword [esp], 6
jae case.default.0x423e8c
add edi, 0xffffffa9
mov edx, edi
mov eax, dword [esp + 0x18]
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 + 0x442c2c]
mov byte [eax], 0
nop
nop
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 0x423ea0
cmp ecx, 0x20
je 0x423ea0
movzx ecx, al
cmp ecx, 0x2b
je 0x423ec6
cmp ecx, 0x2d
jne 0x424129
cmp al, 0x2b
sete byte [esp + 0x2b]
movzx eax, byte [esi]
cmp al, 0x30
jne 0x423ee4
movzx eax, byte [esi + 1]
and al, 0xdf
xor ecx, ecx
cmp al, 0x58
sete cl
lea esi, [esi + ecx*2]
xor ebx, ebx
mov dword [esp], 0
xor eax, eax
jmp 0x423f1e
mov dword [esp + 0x18], 0
xor edi, edi
mov edx, 0xffffffff
mov ecx, 0xffffffff
mov dword [esp + 0x30], 0x22
mov eax, dword [esp + 0x18]
add eax, edx
adc edi, ecx
mov ebx, dword [esp + 0x30]
mov dword [esp], eax
mov eax, edi
mov ecx, eax
mov edx, dword [esp]
mov dword [esp + 0x30], ebx
movsx eax, byte [esi]
lea edi, [eax - 0x30]
cmp edi, 0xa
jb 0x423f51
mov dword [esp], ecx
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x19
ja 0x423fbd
or al, 0x20
cmp al, 0x66
jg 0x423fbd
movsx edi, al
add edi, 0xffffffa9
mov ecx, dword [esp]
mov dword [esp + 0x18], edi
inc esi
mov edi, edx
and edi, ecx
mov dword [esp], 0xffffffff
mov ebx, 0x22
mov eax, 0xffffffff
cmp edi, 0xffffffff
je 0x423f1e
test ecx, 0xf0000000
je 0x423f90
mov dword [esp], 0xffffffff
cmp dword [esp + 0x18], 0
jne 0x423f1e
jmp 0x423ef1
shld ecx, edx, 4
shl edx, 4
mov eax, dword [esp + 0x18]
mov edi, eax
sar edi, 0x1f
add eax, edx
mov eax, edi
adc eax, ecx
mov dword [esp], 0xffffffff
mov eax, 0xffffffff
jb 0x423f1e
jmp 0x423f0d
xor ecx, ecx
mov dword [esp + 0x18], edx
mov eax, edx
neg eax
sbb ecx, dword [esp]
mov edx, dword [case.0x423e8c.6]
jmp edx
cmp byte [esp + 0x2b], 0
lea ebx, [esp + 0x38]
mov edx, dword [esp + 0x2c]
jne 0x423fe8
mov dword [esp], ecx
mov dword [esp + 0x18], eax
mov eax, dword [case.0x423cf6.18]
nop
nop
nop
jmp eax
mov eax, dword [case.0x423cf6.23]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor esi, esi
xor eax, eax
cmp edx, dword [esp + 0x14]
setne al
mov ecx, edx
jmp dword [eax*4 + 0x442c6c]
mov esi, dword [ecx]
xor eax, eax
jmp dword [eax*4 + 0x442c7c]
add ecx, 8
xor eax, eax
cmp ecx, dword [esp + 0x14]
setne al
jmp dword [eax*4 + 0x442c6c]
cmp dword [esp + 0x30], 0x22
setne al
mov edx, dword [ecx + 4]
mov edi, edx
shr edi, 0x1c
xor edi, dword [esp]
shl edx, 4
or edx, 1
xor edx, dword [esp + 0x18]
or edx, edi
sete dl
and dl, al
movzx eax, dl
jmp dword [eax*4 + 0x442c74]
mov eax, 1
jmp dword [eax*4 + 0x442c7c]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x442c84]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0xc4]
mov ecx, dword [esp + 0x34]
jmp dword [0x442c94]
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x3c], eax
mov eax, 0xffffffff
mov edi, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x424111
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
push 0x932a8d34
push dword [0x446c2c]
call fcn.00439870
add esp, 8
lea ecx, [esp + 4]
lea edx, [esp + 0xc]
push edx
push 1
push 0
push 0
push ecx
push 0
push ebx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442c8c]
mov ebx, dword [esp + 0xc4]
mov ecx, dword [esp + 0x34]
jmp dword [0x442c94]
dec esi
mov byte [esp + 0x2b], 1
cmp al, 0x30
je 0x423ed4
jmp 0x423ee4
movzx eax, byte [esi]
test al, al
je 0x42415b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x424150
mov word [edi], 0x203a
mov eax, edi
add eax, 2
mov esi, dword [esp + 0xc]
test esi, esi
je 0x424195
mov ecx, dword [esp + 0x10]
mov edx, esi
and edx, 3
je 0x424199
xor edi, edi
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + edi], bl
inc edi
cmp edx, edi
jne 0x42417a
add eax, edi
mov edx, esi
sub edx, edi
mov edi, eax
jmp 0x42419b
mov edi, eax
jmp 0x4241d9
mov edx, esi
cmp esi, 4
jb 0x4241d9
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 0x4241a0
mov byte [edi], 0xa
inc edi
push 0x2e0ec9bb
push dword [0x446c14]
call fcn.00439870
add esp, 8
push dword [esp + 0x10]
call eax
mov al, 1
mov dword [esp + 0x24], eax
mov ebx, dword [esp + 0xc4]
mov ecx, dword [esp + 0x34]
jmp dword [0x442c94]
push dword [esp + 0xcc]
call fcn.00408d50
mov ecx, dword [esp + 0x38]
add esp, 4
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x442c14]
push esi
call fcn.00408d50
add esp, 4
push esi
call fcn.00408d50
add esp, 4
jmp dword [0x442be0]
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x38], 0x2050407
mov dword [esp + 0x3c], 0
mov dword [esp + 0x3f], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0xa
ja 0x4243be
nop
nop
nop
nop
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx esi, byte [esp + ecx + 0x38]
lea edi, [edx + 0x3e506d01]
lea ecx, [edx + esi]
add ecx, 0x3e506d01
and edi, esi
mov ebx, 0xc1af92fe
sub ebx, edx
or ebx, esi
add ebx, edx
lea edx, [edi + ebx]
add edx, 0x3e506d02
mov esi, ecx
not esi
and esi, edx
not edx
and edx, ecx
sub edx, esi
mov dword [esp + 4], edx
mov ecx, dword [esp + 4]
add cl, 0xf9
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0xb
jb 0x424360
mov ecx, dword [0x446c20]
test ecx, ecx
lea ebx, [esp + 0x38]
je 0x4243f8
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x446c24]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4243f0
inc esi
cmp ecx, esi
jne 0x4243e0
jmp 0x4243f8
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42441f
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
jmp dword [0x442cdc]
push eax
push 1
push dword [0x446c28]
push ecx
call fcn.00437df0
add esp, 0x10
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
jmp dword [0x442cdc]