Function at 0x421529
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x468
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x60], 0x33b835bb
mov dword [esp + 0x64], 0x2faf31a9
mov dword [esp + 0x68], 0x2b7e2dbd
mov dword [esp + 0x6c], 0x27a029b1
mov dword [esp + 0x70], 0x232425bd
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7b], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x1e
ja 0x41fc8b
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax - 0x3930d3d7]
add eax, 0x29
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
add al, 0xe1
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x1f
jb 0x41fc50
lea edi, [esp + 0x60]
lea ecx, [esp + 0x4c]
push edi
call fcn.00434a00
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x441f40]
lea ecx, [esp + 0x4c]
push 0x410
call fcn.00434c70
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x441f48]
mov dword [esp + 0x60], 0xc4eb32cd
mov dword [esp + 0x64], 0x46c4e9ce
mov dword [esp + 0x68], 0xb2bdbb99
mov dword [esp + 0x6c], 0xafb8bc9d
mov dword [esp + 0x70], 0x4e9398ac
mov dword [esp + 0x74], 0xa7969c95
mov dword [esp + 0x78], 0xaca184a0
mov dword [esp + 0x7c], 0xa087ae8b
mov dword [esp + 0x80], 0x88babcb8
mov dword [esp + 0x84], 0x988be1b9
mov dword [esp + 0x88], 0xebdcb5b9
mov dword [esp + 0x8c], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x2f
ja 0x41fd7f
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0x18beda39]
and edx, ecx
add eax, ecx
add eax, 0x18beda39
add edx, edx
sub eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x71
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x30
jb 0x41fd40
lea eax, [esp + 0xc]
lea ecx, [esp + 0x4c]
push 0
push 0x2b
push edi
push eax
call fcn.00435220
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor eax, eax
cmp esi, ecx
sete al
jmp dword [eax*4 + 0x441f50]
mov dword [esp + 0x5c], ecx
mov eax, ecx
sub eax, esi
sar eax, 2
imul eax, eax, 0x421
push eax
call fcn.00408cd0
add esp, 4
mov dword [esp + 0x40], 0
mov ecx, dword [case.0x41fda1.5]
mov dword [esp + 0x3c], eax
mov ebx, eax
jmp case.0x41fda1.2
add esi, 4
mov ecx, dword [case.0x41fda1.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor eax, eax
cmp esi, dword [esp + 0x5c]
setne al
jmp dword [eax*4 + 0x441f68]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x48], esi
mov esi, dword [esi]
push 0x400
push 0
push edi
call fcn.00408d50
add esp, 0xc
lea eax, [esp + 0x28]
lea ecx, [esp + 0x4c]
push eax
push 0x400
push edi
push esi
call fcn.004350b0
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
jmp dword [ecx*4 + 0x441f70]
mov eax, dword [case.0x41fda1.12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
cmp dword [esp + 0x28], 0
sete cl
mov eax, 1
jmp dword [ecx*4 + 0x441f88]
xor eax, eax
jmp dword [0x441f98]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x48]
jmp dword [eax*4 + 0x441fa0]
mov byte [esp + 0x45f], 0
movzx ecx, byte [esp + 0x60]
xor eax, eax
test cl, cl
je 0x41feb2
mov edx, edi
nop
nop
nop
nop
cmp cl, 0x2e
je 0x41feb0
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x41fea0
jmp 0x41feb2
mov eax, edx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441fa8]
lea edx, [eax + 1]
movzx ecx, byte [eax + 1]
xor esi, esi
test cl, cl
mov dword [esp + 0x20], edx
je 0x41fef2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x41fef0
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x41fee0
jmp 0x41fef2
mov esi, edx
xor ecx, ecx
test esi, esi
setne cl
jmp dword [ecx*4 + 0x441fb0]
mov ecx, esi
mov edi, dword [esp + 0x20]
sub ecx, edi
lea edx, [ecx + ecx*2]
shr edx, 2
movzx eax, byte [eax + ecx]
cmp eax, 0x3d
je 0x41ff1c
cmp eax, 0x2e
jne 0x41ff1d
dec edx
movzx eax, byte [ecx + edi - 2]
cmp eax, 0x3d
mov dword [esp + 0x38], ecx
je 0x41ff30
cmp eax, 0x2e
jne 0x41ff31
dec edx
mov dword [esp + 0x58], edx
lea eax, [edx + 1]
push eax
call fcn.00408cd0
add esp, 4
mov dword [esp + 0x1c], eax
cmp esi, edi
je 0x420041
xor edi, edi
mov esi, 2
jmp 0x41ff72
mov edx, dword [esp + 0x44]
nop
nop
nop
nop
nop
nop
lea eax, [esi + 4]
add esi, 2
mov edi, edx
cmp esi, ecx
mov esi, eax
jae 0x420041
mov ebx, dword [esp + 0x20]
movzx eax, byte [ebx + esi - 2]
push eax
call fcn.0040fce0
add esp, 4
mov byte [esp + 0x24], al
movzx eax, byte [ebx + esi - 1]
push eax
call fcn.0040fce0
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 + edi], al
lea edx, [edi + 1]
mov ecx, dword [esp + 0x38]
cmp esi, ecx
jae 0x41ff60
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + esi]
push eax
mov edi, edx
call fcn.0040fce0
mov edx, edi
mov ecx, dword [esp + 0x3c]
add esp, 4
cmp al, 0x40
je 0x41ff60
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edi, dword [esp + 0x24]
lea edx, [edi + 2]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x1c]
mov byte [edx + edi + 1], al
lea eax, [esi + 1]
cmp eax, ecx
jae 0x41ff56
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.0040fce0
mov ecx, dword [esp + 0x3c]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x44]
je 0x41ff60
shl bl, 6
add al, bl
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
mov byte [edx + edi + 2], al
add edi, 3
mov edx, edi
jmp 0x41ff60
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x1c]
mov byte [esi + eax], 0
push esi
call fcn.00401e90
add esp, 4
mov ebx, eax
jmp dword [0x441fb8]
push esi
call fcn.00408ce0
add esp, 4
push ebx
call fcn.00402840
add esp, 4
mov edi, eax
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x441fc0]
lea edi, [esp + 0x60]
jmp 0x4200e9
jmp dword [0x441fc8]
xor ecx, ecx
test eax, eax
setne cl
lea edi, [esp + 0x60]
mov edx, dword [esp + 0x18]
jmp dword [ecx*4 + 0x441fd8]
jmp 0x4200c3
movzx ecx, byte [eax]
test cl, cl
je 0x4200bb
inc eax
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4200b0
mov word [edx], 0x203a
add edx, 2
movzx eax, byte [esp + 0x60]
test al, al
je 0x4200db
lea ecx, [esp + 0x61]
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4200d0
mov byte [edx], 0xa
inc edx
mov dword [esp + 0x18], edx
mov al, 1
mov dword [esp + 0x40], eax
push ebx
call fcn.00402a80
add esp, 4
mov eax, dword [case.0x41feb9.0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x41fda1.20]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x48]
nop
jmp eax
mov dword [esp + 0x28], 0xab043033
lea eax, [esp + 0x2c]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xa
ja 0x42019a
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + ecx + 0x28]
lea esi, [eax + 0x308e171a]
lea ecx, [eax + edx]
add ecx, 0x308e171a
and esi, edx
add eax, 0x1a
and eax, edx
add eax, esi
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov ecx, eax
or ecx, 0x49
and eax, 0x49
add eax, ecx
inc al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xb
jb 0x420140
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004027c0
add esp, 8
jmp dword [0x441fd0]
mov dword [esp + 0x28], 0xab043033
lea eax, [esp + 0x2c]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xa
ja 0x42023a
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + ecx + 0x28]
lea esi, [eax + 0x308e171a]
lea ecx, [eax + edx]
add ecx, 0x308e171a
and esi, edx
add eax, 0x1a
and eax, edx
add eax, esi
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov ecx, eax
or ecx, 0x49
and eax, 0x49
add eax, ecx
inc al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xb
jb 0x4201e0
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004027c0
add esp, 8
jmp case.0x41fef9.6
xor ebx, ebx
test esi, esi
jne 0x420380
jmp case.0x41fc9e.1
mov ecx, dword [esp + 0x40]
mov eax, ecx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x442010]
mov edi, dword [esp + 0x3c]
mov ebx, ecx
jmp dword [0x442018]
mov byte [ebx], 0
mov edi, dword [esp + 0x3c]
sub ebx, edi
mov dword [esp + 0x60], 0x37303105
mov dword [esp + 0x64], 0xd33f2039
mov dword [esp + 0x68], 0xd62e2825
mov dword [esp + 0x6c], 0x28d8386b
mov dword [esp + 0x70], 0x3f612635
mov dword [esp + 0x74], 0x19131823
mov dword [esp + 0x78], 0xe3e45fe3
mov word [esp + 0x7c], 0x65e6
mov dword [esp + 0x82], 0
mov dword [esp + 0x7e], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x25
ja 0x420351
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 + 0x60]
lea edx, [eax + 0xcb]
and edx, ecx
lea esi, [eax + ecx]
add esi, 0x5d875bcb
add eax, 0x5d875bcb
and eax, ecx
add eax, edx
mov ecx, eax
xor ecx, esi
not eax
and eax, esi
add eax, eax
sub eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x73
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x60], al
mov eax, dword [esp + 8]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
cmp eax, 0x26
jb 0x4202f0
lea eax, [esp + 0x60]
mov ecx, dword [ebp + 8]
push ebx
push edi
push eax
call fcn.00409600
mov ebx, eax
jmp dword [0x442018]
push edi
call fcn.00408ce0
add esp, 4
and bl, 1
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test esi, esi
je case.0x41fc9e.1
cmp esi, ecx
je case.0x41fc9e.1
push esi
call fcn.00408ce0
add esp, 4
lea ecx, [esp + 0x4c]
call fcn.00434db0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor edx, edx
test esi, esi
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x442098]
jmp dword [ecx*4 + 0x442020]
mov dword [esp + 0x38], 0x23922182
mov dword [esp + 0x3c], 0x1fa51d9d
mov dword [esp + 0x40], 0x1bb519a5
mov dword [esp + 0x44], 0x17a615b6
mov dword [esp + 0x48], 0x13b411bd
mov dword [esp + 0x4c], 0xfcf0da5
mov dword [esp + 0x50], 0xbb009b3
mov dword [esp + 0x54], 0x7b205b1
mov dword [esp + 0x58], 0x3a401b9
mov dword [esp + 0x5c], 0xff4dfdaf
mov dword [esp + 0x60], 0xfb54f940
mov dword [esp + 0x64], 0xf737f553
mov dword [esp + 0x68], 0xf34ff144
mov dword [esp + 0x6c], 0xef42ed56
mov dword [esp + 0x70], 0xeb7ce94d
mov dword [esp + 0x74], 0xe77be564
mov dword [esp + 0x78], 0xe34de142
mov dword [esp + 0x7c], 0xdf43dd6e
mov dword [esp + 0x80], 0xdb4fd97d
mov word [esp + 0x84], 0xd5da
mov word [edi + 8], 0
mov dword [edi + 4], 0
mov dword [edi], 0
mov dword [esp + 0xa4], 0
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x57
ja 0x42051c
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa4]
movzx edx, byte [esp + edx + 0x38]
mov esi, ecx
and esi, 0xc5b375db
xor ecx, 0x45b375db
lea ecx, [ecx + esi*2]
lea esi, [ecx + edx]
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xdc], esi
mov ecx, dword [esp + 0xdc]
add cl, 3
mov edx, dword [esp + 0xa4]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x58
jb 0x4204c0
lea ecx, [esp + 0xc]
lea edx, [esp + 0x38]
push 0
push 0
push eax
push ecx
push edx
call fcn.00439a10
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x442028]
lea esi, [esp + 0x34]
mov eax, esp
push esi
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x2c]
call fcn.00439e10
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442030]
mov ecx, dword [esp + 0x34]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x42057b
mov eax, 0xffffffff
push eax
call fcn.00408cd0
add esp, 4
mov ebx, eax
mov dword [esp + 0x38], 0xab56a569
mov dword [esp + 0x3c], 0xaf5ca95f
mov dword [esp + 0x40], 0xb340ad49
mov dword [esp + 0x44], 0xb760b15e
mov dword [esp + 0x48], 0xbb40b551
mov dword [esp + 0x4c], 0xbfb8b952
mov byte [esp + 0x50], 0
mov dword [esp + 0xa4], 0
mov eax, dword [esp + 0xa4]
cmp eax, 0x18
ja 0x42063b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, eax
and edx, 0x1b780e5
xor eax, 0x1b780e5
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xdc]
add al, 0xbd
mov ecx, dword [esp + 0xa4]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0xa4]
mov eax, dword [esp + 0xa4]
cmp eax, 0x19
jb 0x4205e0
push esi
push ebx
push 0
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x1c]
call fcn.0043a4a0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x442038]
jmp dword [0x442040]
push ebx
call fcn.00408ce0
add esp, 4
mov eax, dword [case.0x420536.2]
nop
nop
xor ebx, ebx
jmp eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38], 0x3c3d3e3f
mov dword [edi - 0x47], 0
mov dword [edi - 0x4a], 0
mov dword [esp + 0xa4], 0
mov ecx, dword [esp + 0xa4]
cmp ecx, 0xa
ja 0x42070e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa4]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx - 0x27b75188]
lea edi, [ecx + 0x78]
xor edi, esi
and esi, edx
and edi, edx
add ecx, edx
add ecx, 0xd848ae78
lea edx, [edi + esi*2]
sub ecx, edx
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0xdc]
add cl, 0xb8
mov edx, dword [esp + 0xa4]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
cmp ecx, 0xb
jb 0x4206b0
mov ecx, dword [0x447094]
test ecx, ecx
je 0x420770
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x447098]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x420754
inc esi
cmp ecx, esi
jne 0x420730
jmp 0x420770
mov esi, 4
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x442088]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x420770
push eax
push 1
push dword [0x44709c]
push ecx
call fcn.004366c0
add esp, 0x10
nop
nop
mov eax, dword [case.0x420653.10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ebx, ebx
setne al
mov esi, 2
lea edi, [esp + 0x86]
jmp dword [eax*4 + 0x442068]
lea eax, [esp + 0x38]
push eax
call fcn.00438fb0
add esp, 4
movzx edx, al
xor ecx, ecx
mov eax, 1
jmp dword [edx*4 + 0x442070]
xor edx, edx
cmp dword [esp + 0x38], 1
sete dl
jmp dword [edx*4 + 0x442078]
mov esi, ecx
jmp dword [eax*4 + 0x442080]
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x442088]
xor eax, eax
jmp dword [eax*4 + 0x442080]
xor esi, esi
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x442088]
xor edx, edx
cmp esi, 4
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x442090]
mov eax, dword [case.0x420536.33]
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4420b0]
mov dword [esp + 0x38], 0x7b9d798a
mov dword [esp + 0x3c], 0x7f827d8b
mov dword [esp + 0x40], 0x738b7198
mov dword [esp + 0x44], 0x7798758b
mov dword [esp + 0x48], 0xbf90993
mov dword [esp + 0x4c], 0xfea0df4
mov dword [esp + 0x50], 0x3f901f5
mov dword [esp + 0x54], 0x7f2053c
mov dword [esp + 0x58], 0x1bfe19e2
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], 0x1d1a
mov byte [esp + 0x60], 0
mov dword [esp + 0xa4], 0
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x28
ja 0x4208f4
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa4]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx - 0x68065351]
add ecx, 0xaf
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xdc], esi
mov ecx, dword [esp + 0xdc]
add cl, 0x37
mov edx, dword [esp + 0xa4]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x29
jb 0x4208a0
lea edi, [esp + 0xa4]
lea edx, [esp + 0x38]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xc8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x420920
cmp eax, 0xffffffd9
jge 0x42093e
mov eax, 0xffffffff
jmp 0x420941
xor ebx, ebx
jmp 0x421664
add eax, 0x26
push eax
call fcn.00408cd0
add esp, 4
mov esi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x420971
lea edx, [ebx + 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 0x420960
mov word [eax], 0
movzx ecx, word [esp + 0xa4]
test cx, cx
je 0x4209a1
lea edx, [esp + 0xa6]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x420990
mov word [eax], 0
jmp dword [0x4420b8]
push ebx
call fcn.00408ce0
add esp, 4
mov eax, esp
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.004391f0
add esp, 0x14
mov ecx, dword [case.0x420536.40]
mov dword [esp + 0x28], esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4420d0]
xor esi, esi
xor edi, edi
jmp dword [0x442160]
push dword [esp + 0x28]
call fcn.00408ce0
add esp, 4
xor eax, eax
mov dword [esp + 0x1c], esi
cmp esi, edi
sete al
xor ebx, ebx
jmp dword [eax*4 + 0x442168]
lea eax, [esp + 0x34]
push 0
push eax
push dword [esp + 8]
call fcn.00439580
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x4420d8]
jmp dword [0x4420e4]
mov dword [esp + 0x1c], edi
mov eax, dword [esp]
mov dword [esp + 0x38], 0x3c3d3e3f
mov dword [esp + 0x3c], 0
mov dword [esp + 0x3f], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0xa
ja 0x420acf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx - 0x27b75188]
lea edi, [ecx + 0x78]
xor edi, esi
and esi, edx
and edi, edx
add ecx, edx
add ecx, 0xd848ae78
lea edx, [edi + esi*2]
sub ecx, edx
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0xdc]
add cl, 0xb8
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0xb
jb 0x420a80
mov ecx, dword [0x447094]
test ecx, ecx
je 0x420b0c
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x447098]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x420b00
inc esi
cmp ecx, esi
jne 0x420af0
jmp 0x420b0c
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x420fa7
mov edi, ebx
mov esi, dword [esp + 0x1c]
jmp dword [0x442160]
xor eax, eax
mov dword [esp + 0x1c], esi
cmp esi, edi
sete al
xor ebx, ebx
jmp dword [eax*4 + 0x442168]
mov dword [esp + 0x24], edi
mov eax, edi
sub eax, dword [esp + 0x1c]
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.00408cd0
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], 0x632e6105
mov dword [esp + 0x3c], 0x67c565cb
mov dword [esp + 0x40], 0x6bc669c9
mov dword [esp + 0x44], 0x6ffe6d2d
mov dword [esp + 0x48], 0x531651c0
mov dword [esp + 0x4c], 0x57c255f5
mov dword [esp + 0x50], 0x5b3f59f9
mov dword [esp + 0x54], 0x5fed5de0
mov dword [esp + 0x58], 0x43e741d4
mov dword [esp + 0x5c], 0x47eb45e5
mov dword [esp + 0x60], 0x4be649f4
mov dword [esp + 0x64], 0x4fed4de3
mov dword [esp + 0x68], 0xb31eb111
mov dword [esp + 0x6c], 0xb720b5da
mov dword [esp + 0x70], 0xbb1cb91c
lea eax, [esp + 0x74]
mov word [esp + 0x74], 0xbdbc
mov dword [esp + 0x76], 0
mov dword [esp + 0x79], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x44
ja 0x420c2d
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + edx]
add ecx, 0xd0
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0x9bda2cd0
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0xc]
add cl, 0x50
mov edx, dword [esp]
mov byte [esp + edx + 0x38], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x45
jb 0x420bf0
lea esi, [esp + 0xdc]
lea edx, [esp + 0x38]
mov ecx, 0xf
mov edi, esi
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 + 0x34]
push ebx
push 0
push 0
push 0x1e
push esi
push 0
call dword [0x446088]
mov edi, dword [esp + 0x34]
test edi, edi
jns 0x420c79
mov eax, 0xffffffff
jmp 0x420c7c
lea eax, [edi + edi]
push eax
call fcn.00408cd0
add esp, 4
mov esi, eax
push ebx
push edi
push eax
push 0x1e
lea eax, [esp + 0xec]
push eax
push 0
call dword [0x446088]
lea eax, [esp + 0xa0]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0xac], esi
push esi
call fcn.004391f0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442170]
xor ebx, ebx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
jmp dword [0x442240]
push dword [esp + 0x9c]
call fcn.00408ce0
add esp, 4
mov eax, ebx
and al, 1
movzx ecx, al
mov edi, dword [esp + 0x24]
mov eax, ebx
jmp dword [ecx*4 + 0x442248]
mov esi, dword [esp + 0x20]
mov byte [esi], 0
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x38], 0x170809f5
mov dword [esp + 0x3c], 0xb1f1811
mov dword [esp + 0x40], 0x362e3015
mov dword [esp + 0x44], 0x2030d0f3
mov dword [esp + 0x48], 0xdff92625
mov dword [esp + 0x4c], 0x212b203b
mov dword [esp + 0x50], 0x2b24ff3b
mov dword [esp + 0x54], 0x9526
mov byte [esp + 0x58], 0
sub esi, ebx
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x20
ja 0x420d9a
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x97]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x83697897
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xdf
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x21
jb 0x420d60
mov ecx, dword [ebp + 8]
push esi
push ebx
lea eax, [esp + 0x40]
push eax
call fcn.00409600
jmp dword [0x442250]
lea eax, [esp + 0xd0]
push 0
push eax
push dword [esp + 0xa8]
call fcn.00439580
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 0x28], 0
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x20], ebx
jmp dword [eax*4 + 0x442178]
mov esi, dword [esp + 0xd0]
lea eax, [esi + 1]
push eax
call fcn.00408cd0
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0xac]
call fcn.00439680
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], ebx
jmp dword [eax*4 + 0x442180]
mov esi, dword [esp + 0xd0]
mov byte [edi + esi], 0
push 0x20
call fcn.00408cd0
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 + 0xcc], eax
mov ecx, eax
push esi
mov dword [esp + 0xd8], edi
push edi
call fcn.004233f0
movzx eax, al
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], ebx
mov edi, dword [esp + 0x24]
jmp dword [eax*4 + 0x442188]
mov dword [esp + 0x38], 0x57585e7b
mov dword [esp + 0x3c], 0x425040ab
mov dword [esp + 0x40], 0x475b4f17
mov dword [esp + 0x44], 0x680d5cb2
mov dword [esp + 0x48], 0x4e535848
mov dword [esp + 0x4c], 0x45457603
mov dword [esp + 0x50], 0x3f2d5046
mov dword [esp + 0x54], 0x3729280f
mov word [esp + 0x58], 0x4d29
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov word [esp + 0x66], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2f
ja 0x420f5d
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x38]
mov ecx, 0x876b9259
sub ecx, eax
add eax, 0xa6
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc]
add al, 0x76
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x30
jb 0x420f20
mov ecx, dword [esp + 0xcc]
lea eax, [esp + 0x38]
push eax
call fcn.00423620
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], ebx
jmp dword [ecx*4 + 0x442190]
add eax, 8
mov dword [esp + 0x28], 0
mov esi, dword [eax]
xor eax, eax
test esi, esi
setne al
mov dword [esp + 0x20], ebx
jmp dword [eax*4 + 0x442198]
push eax
push 1
push dword [0x44709c]
push ecx
call fcn.004366c0
add esp, 0x10
mov edi, ebx
mov esi, dword [esp + 0x1c]
jmp dword [0x442160]
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x3c], eax
mov eax, 0xffffffff
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x421032
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
mov dword [esp], 0
mov dword [esp + 4], 0
push 0x932a8d34
push dword [0x4470a0]
call fcn.00438590
add esp, 8
lea ecx, [esp + 0xc]
mov edx, esp
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 + 0x442210]
mov esi, dword [esp + 0x94]
jmp dword [0x442218]
movzx eax, byte [esi]
test al, al
je 0x42106d
inc esi
mov ecx, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x421060
jmp 0x421071
mov ecx, dword [esp + 0x20]
mov word [ecx], 0x203a
mov eax, ecx
add eax, 2
mov esi, dword [esp]
test esi, esi
je 0x4210ae
mov ecx, dword [esp + 4]
mov edx, esi
and edx, 3
je 0x4210b2
xor edi, edi
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + edi], bl
inc edi
cmp edx, edi
jne 0x42108f
mov edx, esi
sub edx, edi
add eax, edi
mov ebx, eax
mov edi, dword [esp + 0x24]
jmp 0x4210b4
mov esi, eax
jmp 0x4210f4
mov edx, esi
cmp esi, 4
mov esi, ebx
jb 0x4210f4
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 esi, [eax + 4]
mov byte [eax + 3], bl
mov eax, esi
add edx, 0xfffffffc
jne 0x4210bb
mov byte [esi], 0xa
inc esi
mov dword [esp + 0x20], esi
push 0x2e0ec9bb
push dword [0x44708c]
call fcn.00438590
add esp, 8
push dword [esp + 4]
call eax
mov al, 1
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0x94]
jmp dword [0x442218]
mov eax, dword [esi]
mov dword [esp + 0x14], eax
cmp dword [esi + 0x18], 3
mov edx, 0
jne case.default.0x42114e
mov edx, dword [esi + 0x10]
xor eax, eax
cmp dword [esp + 0x14], 0
setne al
jmp dword [eax*4 + 0x4421a0]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x4421a8]
mov dword [esp + 0x24], edi
mov dword [esp + 0x94], esi
mov eax, edx
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x4211b7
mov esi, edx
mov dword [esp + 8], edx
sub ecx, edx
inc ecx
shr ecx, 1
mov dword [esp + 0xd8], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408cd0
add esp, 4
mov edx, dword [case.0x421204.4]
mov ecx, dword [case.0x420f81.18]
movsx edi, byte [esi]
xor ebx, ebx
test edi, edi
setne bl
mov dword [esp + 0x90], eax
mov dword [esp + 0x18], eax
jmp dword [ebx*4 + 0x4421b0]
mov eax, edi
and eax, 0xffffffdf
mov esi, edi
xor esi, 0x20
add esi, edi
sub esi, eax
lea eax, [esi - 0x61]
add edi, 0xffffffd0
cmp edi, 0xa
jb 0x4211de
mov edi, 0xffffffff
cmp eax, 6
jb 0x4211f0
mov eax, edi
jmp 0x4211f5
add esi, 0xffffffa9
mov eax, esi
mov edi, dword [esp + 8]
movsx esi, byte [edi + 1]
xor ebx, ebx
test esi, esi
setne bl
jmp dword [ebx*4 + 0x4421b8]
inc edi
mov ebx, dword [esp + 0x18]
jmp 0x421258
mov ebx, esi
and ebx, 0xffffffdf
mov edi, esi
xor edi, 0x20
add edi, esi
sub edi, ebx
lea ebx, [edi - 0x61]
add esi, 0xffffffd0
cmp esi, 0xa
jb 0x42123e
mov esi, 0xffffffff
shl eax, 4
cmp ebx, 6
jae 0x42124b
add edi, 0xffffffa9
mov esi, edi
mov ebx, dword [esp + 0x18]
or eax, esi
mov edi, dword [esp + 8]
add edi, 2
lea esi, [ebx + 1]
nop
nop
nop
nop
nop
jmp edx
jmp ecx
mov byte [ebx], al
mov dword [esp + 8], edi
movsx edi, byte [edi]
xor ebx, ebx
test edi, edi
setne bl
mov dword [esp + 0x18], esi
jmp dword [ebx*4 + 0x4421b0]
mov eax, dword [esp + 0x18]
mov byte [eax], 0
mov esi, dword [esp + 0x14]
jmp 0x4212a1
inc esi
movzx eax, byte [esi]
movsx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x4212a0
cmp ecx, 0x20
je 0x4212a0
cmp al, 0x2b
sete cl
cmp al, 0x2d
setne dl
sete al
or al, cl
movzx eax, al
lea edi, [esi + eax]
or dl, cl
mov byte [esp + 0x98], dl
cmp byte [esi + eax], 0x30
jne 0x4212ed
movzx ecx, byte [esi + eax + 1]
and cl, 0xdf
xor edx, edx
cmp cl, 0x58
sete dl
lea edi, [eax + edx*2]
add edi, esi
mov dword [esp + 0x14], edi
xor ebx, ebx
xor edi, edi
xor eax, eax
jmp 0x421323
mov dword [esp + 0x30], 0
xor esi, esi
mov ecx, 0xffffffff
mov edx, 0xffffffff
mov dword [esp + 0x18], 0x22
mov edi, dword [esp + 0x30]
add edi, ecx
adc esi, edx
mov ebx, dword [esp + 0x18]
mov eax, esi
mov dword [esp + 8], eax
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 0x14]
movsx edx, byte [ecx]
lea eax, [edx - 0x30]
cmp eax, 0xa
jae 0x421350
mov eax, edx
xor eax, 0xffffffcf
and edx, 0xffffffcf
lea eax, [eax + edx*2]
inc eax
cmp eax, 0xf
jle 0x42136e
jmp 0x4213d3
mov eax, edx
and eax, 0xffffffdf
add eax, 0xffffffbf
cmp eax, 0x1a
jae 0x4213d3
mov eax, edx
not eax
or eax, 0xffffffdf
add eax, edx
add eax, 0xffffffca
cmp eax, 0xf
jg 0x4213d3
mov dword [esp + 0x30], eax
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, edi
mov esi, edi
mov edx, dword [esp + 8]
and esi, edx
mov edi, 0xffffffff
mov ebx, 0x22
mov eax, 0xffffffff
cmp esi, 0xffffffff
je 0x421323
test edx, 0xf0000000
je 0x4213ad
cmp dword [esp + 0x30], 0
jne 0x421323
jmp 0x4212f9
shld edx, ecx, 4
shl ecx, 4
mov eax, dword [esp + 0x30]
mov esi, eax
sar esi, 0x1f
add eax, ecx
mov eax, esi
adc eax, edx
mov eax, 0xffffffff
jb 0x421323
jmp 0x421315
xor esi, esi
mov ecx, edi
neg edi
mov edx, 0
sbb edx, dword [esp + 8]
cmp byte [esp + 0x98], 0
jne case.default.0x42140a
mov ecx, edi
mov dword [esp + 8], edx
mov eax, dword [case.0x420f81.27]
mov dword [esp + 0x14], eax
xor eax, eax
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
cmp ebx, edi
setne al
jmp dword [eax*4 + 0x4421e0]
cmp dword [esp + 0x18], 0x22
setne al
mov edx, dword [ebx + 4]
mov edi, edx
shr edi, 0x1c
xor edi, dword [esp + 8]
shl edx, 4
or edx, 1
xor edx, ecx
or edx, edi
sete dl
and dl, al
movzx eax, dl
jmp dword [eax*4 + 0x4421e8]
mov eax, 1
mov edi, dword [esp + 0x24]
jmp dword [eax*4 + 0x4421f0]
mov esi, dword [ebx]
xor eax, eax
mov edi, dword [esp + 0x24]
jmp dword [eax*4 + 0x4421f0]
jmp dword [esp + 0x14]
add ebx, 8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 8
jmp dword [0x442200]
xor eax, eax
cmp ebx, edi
setne al
jmp dword [eax*4 + 0x4421e0]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x442208]
mov esi, dword [esp + 0x94]
jmp dword [0x442218]
push dword [esp + 0x90]
call fcn.00408ce0
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x420f81.39]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
add esi, 4
mov esi, dword [esi]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x442198]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0xd4]
jmp dword [0x442230]
mov esi, dword [esp + 0xcc]
mov ecx, esi
call fcn.00423790
push esi
call fcn.00408ce0
add esp, 4
jmp dword [0x442238]
jmp dword [0x442238]
push edi
call fcn.00408ce0
add esp, 4
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x38], 0x3c3d3e3f
mov dword [esp + 0x3c], 0
mov dword [esp + 0x3f], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xa
ja 0x4215a4
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx - 0x27b75188]
lea edi, [ecx + 0x78]
xor edi, esi
and esi, edx
and edi, edx
add ecx, edx
add ecx, 0xd848ae78
lea edx, [edi + esi*2]
sub ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0xb8
mov edx, dword [esp]
mov byte [esp + edx + 0x38], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xb
jb 0x421560
mov ecx, dword [0x447094]
test ecx, ecx
je 0x4215dc
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x447098]
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4215d0
inc esi
cmp ecx, esi
jne 0x4215c0
jmp 0x4215dc
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42166e
mov ebx, dword [esp + 0x28]
jmp dword [0x442240]
mov eax, ebx
and al, 1
movzx ecx, al
mov edi, dword [esp + 0x24]
mov eax, ebx
jmp dword [ecx*4 + 0x442248]
mov ebx, dword [esp + 0x2c]
jmp dword [0x442250]
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x421664
cmp esi, edi
jne 0x421644
jmp 0x421664
cmp esi, edi
je 0x421658
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x421640
push eax
call fcn.00408ce0
add esp, 4
jmp 0x421640
push dword [esp + 0x1c]
call fcn.00408ce0
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
push 1
push dword [0x44709c]
push ecx
call fcn.004366c0
add esp, 0x10
mov ebx, dword [esp + 0x28]
jmp dword [0x442240]
mov dword [esp + 0x38], 0x87707e63
mov dword [esp + 0x3c], 0x7a886883
mov dword [esp + 0x40], 0x77636f37
mov dword [esp + 0x44], 0x702d7c8a
mov dword [esp + 0x48], 0x6e7b6090
mov dword [esp + 0x4c], 0x6869582b
mov dword [esp + 0x50], 0x9f609867
mov word [esp + 0x54], 0x119f
mov dword [esp + 0x56], 0
mov word [esp + 0x5a], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x23
ja 0x42173b
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, eax
and edx, 0x3f176282
xor eax, 0xbf176282
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xdc], edx
mov eax, dword [esp + 0xdc]
add al, 0x72
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x24
jb 0x4216f0
mov ecx, dword [esp + 0x98]
lea eax, [esp + 0x38]
push eax
call fcn.00423620
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
xor edi, edi
jmp dword [ecx*4 + 0x442100]
add eax, 8
mov dword [esp + 0x2c], 0
mov edx, dword [eax]
xor eax, eax
test edx, edx
setne al
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x442108]
mov eax, dword [edx]
mov dword [esp + 8], eax
mov ecx, ebx
sub ecx, edi
sar ecx, 3
cmp ebx, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
je 0x4217a4
mov edx, edi
mov edi, ecx
jmp 0x42182d
lea eax, [ecx + 1]
mov esi, ecx
shr esi, 1
add esi, ecx
cmp esi, eax
ja 0x4217b3
mov esi, eax
mov eax, esi
and eax, 0xfffffff7
mov ecx, esi
and ecx, 8
mov edx, esi
or edx, 8
imul edx, ecx
xor ecx, 8
imul ecx, eax
add edx, ecx
push edx
call fcn.00408cd0
add esp, 4
mov ebx, eax
test edi, edi
je 0x42181d
mov edx, dword [esp + 0x2c]
cmp edi, edx
je 0x421814
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [edi + eax]
mov dword [ebx + eax], ecx
mov ecx, dword [edi + eax + 4]
mov dword [ebx + eax + 4], ecx
mov dword [edi + eax], 0
lea ecx, [edi + eax]
add ecx, 8
add eax, 8
cmp ecx, edx
jne 0x4217f0
mov edx, edi
push edx
call fcn.00408ce0
add esp, 4
mov edi, dword [esp + 0x14]
mov edx, ebx
lea ebx, [ebx + edi*8]
lea eax, [edx + esi*8]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x24], ebx
mov dword [edx + edi*8], 0
mov dword [esp + 0x18], edx
mov dword [edx + edi*8 + 4], 0
mov ebx, 0xffffffff
mov esi, 0xfffffffe
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
add esi, 2
cmp byte [ecx + ebx + 1], 0
lea ebx, [ebx + 1]
lea eax, [eax + 2]
jne 0x421860
mov dword [esp + 0x94], edx
and esi, 2
mov eax, ebx
xor eax, 1
mov dword [esp + 0x20], eax
lea edi, [esi + eax]
push edi
mov dword [esp + 0x34], edi
call fcn.00408cd0
add esp, 4
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [ecx + edx*8], eax
mov ecx, edi
shr ecx, 2
mov edx, dword [esp + 8]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, dword [esp + 0x30]
mov ecx, edx
shr ecx, 1
and ecx, 1
and edx, 0xfffffffc
mov edi, dword [esp + 8]
add edi, edx
add edx, eax
mov dword [esp + 0x9c], edi
mov eax, edi
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esp + 0x30]
test bl, 1
jne 0x4218f3
mov eax, edi
and eax, 2
mov ecx, dword [esp + 0x9c]
movzx ecx, byte [ecx + eax]
mov byte [edx + eax], cl
dec edi
mov ebx, dword [esp + 0x24]
je 0x42191e
mov ecx, edi
mov edx, dword [esp + 0x20]
lea eax, [edx - 2]
add eax, esi
jne 0x42192d
mov eax, 0xffffffff
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
test cl, 1
jne 0x42198e
jmp 0x4219a5
xor eax, eax
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
jmp 0x4219a7
mov edi, ecx
mov eax, dword [esp + 0x94]
and eax, 2
lea ecx, [edx + eax]
dec ecx
and ecx, 0xfffffffe
mov eax, 0xffffffff
mov esi, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
shr edx, 8
xor al, byte [esi]
movzx eax, al
xor edx, dword [eax*4 + 0x43c7a0]
mov eax, edx
shr eax, 8
xor dl, byte [esi + 1]
add esi, 2
movzx edx, dl
xor eax, dword [edx*4 + 0x43c7a0]
add ecx, 0xfffffffe
jne 0x421950
mov dword [esp + 8], esi
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov ecx, edi
test cl, 1
je 0x4219a5
mov ecx, eax
shr ecx, 8
mov edi, dword [esp + 8]
xor al, byte [edi]
movzx eax, al
xor ecx, dword [eax*4 + 0x43c7a0]
mov eax, ecx
not eax
mov ecx, dword [esp + 0x18]
mov dword [ecx + esi*8 + 4], eax
add ebx, 8
mov eax, dword [case.0x421757.10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
add edx, 4
mov edx, dword [edx]
xor eax, eax
test edx, edx
setne al
mov edi, dword [esp + 0x18]
jmp dword [eax*4 + 0x442108]
mov eax, dword [case.0x421757.0]
nop
nop
jmp eax
mov eax, dword [case.0x420536.52]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x442148]
mov dword [esp + 0x90], edi
not eax
shr eax, 0x1f
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x4420f0]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x90]
mov byte [edi + esi], 0
push 0x20
call fcn.00408cd0
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 + 0x98], eax
mov ecx, eax
push esi
push edi
call fcn.004233f0
movzx eax, al
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x4420f8]
jmp dword [0x442140]
mov esi, dword [esp + 0x98]
mov ecx, esi
call fcn.00423790
push esi
call fcn.00408ce0
add esp, 4
jmp dword [0x442148]
push dword [esp + 0x90]
call fcn.00408ce0
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x44215c]
mov esi, dword [esp + 0x34]
lea eax, [esi + 1]
push eax
call fcn.00408cd0
add esp, 4
push 0
push esi
push eax
push dword [esp + 0xc]
call fcn.00439680
add esp, 0x10
mov esi, dword [esp + 0x34]
lea eax, [esi + 1]
push eax
call fcn.00408cd0
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0xc]
call fcn.00439680
add esp, 0x10
jmp dword [0x4420e8]