Function at 0x421da2
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 + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x60], 0xeba0d5a3
mov dword [esp + 0x64], 0xef8fe991
mov dword [esp + 0x68], 0xe3deed9d
mov dword [esp + 0x6c], 0xe768e199
mov dword [esp + 0x70], 0xfbe4e59d
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7b], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 0x1e
ja 0x42117d
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax - 0x27f90823]
add eax, 0xdd
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
add al, 0xf5
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 0x1f
jb 0x421140
lea edi, [esp + 0x60]
lea ecx, [esp + 0x48]
push edi
call fcn.00436120
shr eax, 0x1f
jmp dword [eax*4 + 0x4432a0]
lea ecx, [esp + 0x48]
push 0x410
call fcn.00436370
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x4432b8]
jmp dword [0x4432c4]
mov eax, dword [case.0x42118e.5]
xor ebx, ebx
nop
nop
jmp eax
mov esi, dword [ebx]
push 0x400
push 0
push edi
call fcn.00408e20
add esp, 0xc
lea eax, [esp + 0x20]
lea ecx, [esp + 0x48]
push eax
push 0x400
push edi
push esi
call fcn.004367c0
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
mov dword [esp + 0x5c], ebx
jmp dword [ecx*4 + 0x4432e0]
xor eax, eax
cmp dword [esp + 0x20], 0
sete al
jmp dword [eax*4 + 0x4432e8]
mov eax, 1
jmp 0x421232
xor eax, eax
mov ecx, dword [case.0x42118e.22]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
jmp dword [eax*4 + 0x443300]
mov byte [esp + 0x45f], 0
movzx ecx, byte [esp + 0x60]
xor eax, eax
test cl, cl
je 0x421272
mov edx, edi
nop
nop
cmp cl, 0x2e
je 0x421270
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x421260
jmp 0x421272
mov eax, edx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443308]
lea esi, [eax + 1]
movzx ecx, byte [eax + 1]
xor ebx, ebx
test cl, cl
je 0x4212a2
mov edx, esi
nop
cmp cl, 0x2e
je 0x4212a0
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x421290
jmp 0x4212a2
mov ebx, edx
xor ecx, ecx
test ebx, ebx
setne cl
jmp dword [ecx*4 + 0x443310]
mov dword [esp + 4], ebx
mov ecx, ebx
sub ecx, esi
mov ebx, ecx
and ebx, 0xfffffffc
mov edx, ecx
and edx, 3
mov edi, ecx
or edi, 3
imul edi, edx
xor edx, 3
imul edx, ebx
add edi, edx
mov edx, edi
mov edi, ecx
shr edx, 2
cmp byte [eax + ecx], 0x3d
je 0x4212f3
mov eax, edi
xor eax, 0xfffffffe
mov ecx, edi
and ecx, 0xfffffffe
lea eax, [eax + ecx*2]
cmp byte [esi + eax + 1], 0x2e
jne 0x4212f4
dec edx
mov ebx, dword [esp + 4]
movzx eax, byte [edi + esi - 2]
cmp eax, 0x3d
mov dword [esp + 0x34], edi
je 0x42130b
cmp eax, 0x2e
jne 0x42130c
dec edx
mov eax, edx
and eax, 1
mov ecx, edx
mov dword [esp + 0x54], edx
xor ecx, 1
lea eax, [ecx + eax*2]
push eax
call fcn.00408da0
add esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x38], esi
cmp ebx, esi
je 0x421431
xor edi, edi
mov esi, 2
jmp 0x421362
mov edx, dword [esp + 0x44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esi + 4]
add esi, 2
mov edi, edx
cmp esi, ecx
mov esi, eax
jae 0x421431
mov ebx, dword [esp + 0x38]
movzx eax, byte [ebx + esi - 2]
push eax
call fcn.00417d50
add esp, 4
mov byte [esp + 4], al
movzx eax, byte [ebx + esi - 1]
push eax
call fcn.00417d50
add esp, 4
mov bh, al
movzx ecx, byte [esp + 4]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 0x10]
mov byte [ecx + edi], al
lea edx, [edi + 1]
mov ecx, dword [esp + 0x34]
cmp esi, ecx
jae 0x421350
mov dword [esp + 4], edi
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + esi]
push eax
mov edi, edx
call fcn.00417d50
mov edx, edi
mov ecx, dword [esp + 0x38]
add esp, 4
cmp al, 0x40
je 0x421350
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edi, dword [esp + 4]
lea edx, [edi + 2]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10]
mov byte [edx + edi + 1], al
lea eax, [esi + 1]
cmp eax, ecx
jae 0x42133f
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.00417d50
mov ecx, dword [esp + 0x38]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x44]
je 0x421350
shl bl, 6
add al, bl
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 4]
mov byte [edx + edi + 2], al
add edi, 3
mov edx, edi
jmp 0x421350
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x10]
mov byte [esi + eax], 0
push esi
call fcn.00401ec0
add esp, 4
mov ebx, eax
jmp dword [0x443318]
push esi
call fcn.00408db0
add esp, 4
push ebx
call fcn.00402800
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
lea edi, [esp + 0x60]
jmp dword [ecx*4 + 0x443320]
jmp 0x421559
mov dword [esp + 0x20], 0xd3724e4b
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xb
ja 0x4214df
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x20]
lea esi, [ecx + 0xe3]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0x1b8723e3
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0xcb
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xc
jb case.default.0x4214f4
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.00402750
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443328]
mov edx, dword [esp + 0xc]
jmp 0x421529
movzx ecx, byte [eax]
test cl, cl
je 0x42151d
inc eax
mov edx, dword [esp + 0xc]
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x421510
jmp 0x421521
mov edx, dword [esp + 0xc]
mov word [edx], 0x203a
add edx, 2
movzx eax, byte [esp + 0x60]
test al, al
je 0x42154b
lea ecx, [esp + 0x61]
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 0x421540
mov byte [edx], 0xa
inc edx
mov dword [esp + 0xc], edx
mov al, 1
mov dword [esp + 0x40], eax
push ebx
call fcn.00402a90
add esp, 4
mov eax, dword [case.0x42118e.24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x4214f4.11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ebx, dword [esp + 0x5c]
add ebx, 4
xor eax, eax
cmp ebx, dword [esp + 0x58]
setne al
jmp dword [eax*4 + 0x4432d8]
mov ebx, dword [esp + 0x40]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x443360]
mov esi, dword [esp + 0x3c]
jmp dword [0x443368]
mov edi, dword [esp + 0xc]
mov byte [edi], 0
mov esi, dword [esp + 0x3c]
sub edi, esi
mov dword [esp + 0x60], 0x7f7a7d8d
mov dword [esp + 0x64], 0x4b677671
mov dword [esp + 0x68], 0x4c70767d
mov dword [esp + 0x6c], 0x62526eb3
mov dword [esp + 0x70], 0x77a9687d
mov dword [esp + 0x74], 0x656b6e6b
mov dword [esp + 0x78], 0x5b5ea75b
mov word [esp + 0x7c], 0xd15c
mov dword [esp + 0x7e], 0
mov dword [esp + 0x81], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x24
ja 0x421682
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0x62]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x9fc48b62
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov ecx, eax
xor ecx, 0x51
and eax, 0x51
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x25
jb 0x421640
lea eax, [esp + 0x60]
mov ecx, dword [ebp + 8]
push edi
push esi
push eax
call fcn.00409790
mov ebx, eax
jmp dword [0x443368]
jmp dword [0x443374]
push esi
call fcn.00408db0
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00408db0
add esp, 4
jmp dword [0x44337c]
and bl, 1
mov esi, ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
test ebx, ebx
jne 0x4218f5
jmp 0x421902
mov dword [esp + 0x60], 0x3803ca39
mov dword [esp + 0x64], 0xd628053e
mov dword [esp + 0x68], 0x22292305
mov dword [esp + 0x6c], 0x3f242001
mov dword [esp + 0x70], 0xde0b0c38
mov dword [esp + 0x74], 0x17363009
mov dword [esp + 0x78], 0x1015300c
mov dword [esp + 0x7c], 0x1c271e3b
mov dword [esp + 0x80], 0x3c320834
mov dword [esp + 0x84], 0x4234d0d
mov dword [esp + 0x88], 0x7b482125
mov dword [esp + 0x8c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2f
ja 0x421799
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + ecx]
add eax, 0x4b
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x976f854b
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
add al, 0xf3
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x30
jb 0x421760
lea eax, [esp + 0x60]
lea edx, [esp + 0x14]
lea ecx, [esp + 0x48]
push 0
push 0x2b
push eax
push edx
call fcn.00436930
mov dword [esp + 0x60], 0x3803ca39
mov dword [esp + 0x64], 0xd628053e
mov dword [esp + 0x68], 0x22292305
mov dword [esp + 0x6c], 0x3f242001
mov dword [esp + 0x70], 0xde0b0c38
mov dword [esp + 0x74], 0x17363009
mov dword [esp + 0x78], 0x1015300c
mov dword [esp + 0x7c], 0x1c271e3b
mov dword [esp + 0x80], 0x3c320834
mov dword [esp + 0x84], 0x4234d0d
mov dword [esp + 0x88], 0x7b482125
mov dword [esp + 0x8c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2f
ja 0x421869
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + ecx]
add eax, 0x4b
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x976f854b
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
add al, 0xf3
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x30
jb 0x421830
lea eax, [esp + 0x14]
lea ecx, [esp + 0x48]
push 0
push 0x2b
push edi
push eax
call fcn.00436930
jmp dword [0x4432c8]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
xor eax, eax
cmp ebx, ecx
sete al
jmp dword [eax*4 + 0x4432d0]
mov eax, ecx
sub eax, ebx
sar eax, 2
mov esi, ecx
mov ecx, eax
and ecx, 0x421
mov edx, eax
or eax, 0x421
imul eax, ecx
xor ecx, 0x421
and edx, 0xfffffbde
imul edx, ecx
add eax, edx
push eax
call fcn.00408da0
add esp, 4
mov dword [esp + 0x40], 0
xor ecx, ecx
mov dword [esp + 0x58], esi
cmp ebx, esi
setne cl
mov dword [esp + 0x3c], eax
mov dword [esp + 0xc], eax
jmp dword [ecx*4 + 0x4432d8]
xor esi, esi
test ebx, ebx
je 0x421902
cmp ebx, ecx
je 0x421902
push ebx
call fcn.00408db0
add esp, 4
mov ebx, esi
lea ecx, [esp + 0x48]
call fcn.004364b0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
mov dword [esp + 0x38], 0x7baa79ca
mov dword [esp + 0x3c], 0x7fa57dbd
mov dword [esp + 0x40], 0x73a571a5
mov dword [esp + 0x44], 0x77a675a6
mov dword [esp + 0x48], 0x4be449dd
mov dword [esp + 0x4c], 0x4f8f4d95
mov dword [esp + 0x50], 0x4398418b
mov dword [esp + 0x54], 0x479a4599
mov dword [esp + 0x58], 0x5bf45981
mov dword [esp + 0x5c], 0x5f8d5d8f
mov dword [esp + 0x60], 0x53845198
mov dword [esp + 0x64], 0x579755fb
mov dword [esp + 0x68], 0x2bef2984
mov dword [esp + 0x6c], 0x2ffa2d86
mov dword [esp + 0x70], 0x239c218d
mov dword [esp + 0x74], 0x27832594
mov dword [esp + 0x78], 0x3bed398a
mov dword [esp + 0x7c], 0x3f9b3d8e
mov dword [esp + 0x80], 0x338f319d
mov dword [esp + 0x84], 0x3532
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x4f
ja 0x421a66
nop
nop
nop
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xac]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x55ec430f]
and esi, edx
add ecx, edx
add ecx, 0x55ec430f
add esi, esi
sub ecx, esi
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xd4]
add cl, 0x97
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x50
jb 0x421a10
lea ecx, [esp + 4]
lea edi, [esp + 0x38]
push 0
push 0
push eax
push ecx
push edi
call fcn.0043b250
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x443388]
lea ebx, [esp + 0x30]
lea eax, [esp + 0x10]
push ebx
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x24]
call fcn.0043b660
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4433a0]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x421ac7
mov eax, 0xffffffff
push eax
call fcn.00408da0
add esp, 4
mov esi, eax
mov dword [esp + 0x38], 0x9bec99c1
mov dword [esp + 0x3c], 0x971a95e7
mov dword [esp + 0x40], 0x93e691f1
mov dword [esp + 0x44], 0xaffeadd8
mov dword [esp + 0x48], 0xab26a9c9
mov dword [esp + 0x4c], 0xa7a6a5dc
lea eax, [esp + 0x50]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 0xac], 0
mov eax, dword [esp + 0xac]
cmp eax, 0x1a
ja 0x421b82
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x6815b994]
add eax, 0x94
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xd4], edx
mov eax, dword [esp + 0xd4]
add al, 0xf4
mov ecx, dword [esp + 0xac]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0xac]
mov eax, dword [esp + 0xac]
cmp eax, 0x1b
jb 0x421b30
push ebx
push esi
push 0
push edi
push dword [esp + 0x14]
call fcn.0043bcf0
add esp, 0x14
shr eax, 0x1f
mov dword [esp + 0xc], esi
jmp dword [eax*4 + 0x4433a8]
mov dword [esp + 0xc], 0
jmp dword [0x4433b0]
push esi
call fcn.00408db0
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov dword [esp + 0x38], 0x3a393837
lea ecx, [esp + 0x50]
mov word [ecx - 0x10], 0
mov dword [ecx - 0x14], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 9
ja 0x421c56
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
movzx esi, byte [esp + ecx + 0x38]
lea ecx, [edx + 7]
and ecx, esi
mov ebx, 0xeadf4f8
sub ebx, edx
or ebx, esi
not ebx
add ebx, esi
sub ebx, ecx
mov dword [esp + 0xd4], ebx
mov ecx, dword [esp + 0xd4]
add cl, 0xcf
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0xa
jb 0x421c00
mov ecx, dword [0x4484a4]
test ecx, ecx
je 0x421cc0
mov edx, dword [esp + 0x38]
xor esi, esi
mov ebx, dword [0x4484a8]
nop
nop
nop
nop
cmp dword [ebx + esi*8], 0x11081610
je 0x421c9c
inc esi
cmp ecx, esi
jne 0x421c70
jmp 0x421cc0
mov eax, dword [case.0x421a80.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov esi, 4
jmp 0x421d40
mov ecx, dword [ebx + esi*8 + 4]
cmp ecx, edx
je 0x421cc0
push eax
push 1
push dword [0x4484ac]
push ecx
call fcn.00437d00
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x421b9a.6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x421b9a.11]
mov ecx, dword [esp + 0xc]
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ecx, ecx
setne al
mov esi, 2
jmp dword [eax*4 + 0x4433d8]
push edi
call fcn.0043a7e0
add esp, 4
movzx edx, al
xor ecx, ecx
mov eax, 1
jmp dword [edx*4 + 0x4433e0]
xor edx, edx
cmp dword [esp + 0x38], 1
sete dl
jmp dword [edx*4 + 0x4433e8]
mov esi, ecx
jmp dword [eax*4 + 0x4433f0]
jmp 0x421d40
xor eax, eax
jmp dword [eax*4 + 0x4433f0]
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x421b9a.23]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp esi, 4
setl al
jmp dword [eax*4 + 0x443408]
sete al
movzx eax, al
jmp dword [eax*4 + 0x443410]
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x443418]
jmp dword [0x443428]
mov eax, 0x20119
xor ecx, ecx
jmp dword [ecx*4 + 0x443380]
mov eax, dword [case.0x421a80.45]
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp dword [esp + 0xc], 0
sete al
jmp dword [eax*4 + 0x443440]
mov dword [esp + 0x38], 0xdb79d97c
mov dword [esp + 0x3c], 0xd740d543
mov dword [esp + 0x40], 0xd34bd14e
mov dword [esp + 0x44], 0xcf6acd53
mov dword [esp + 0x48], 0xcb5dc96b
mov dword [esp + 0x4c], 0xc758c552
mov dword [esp + 0x50], 0xc35dc159
mov dword [esp + 0x54], 0x3fb03d6a
mov dword [esp + 0x58], 0x3ba439a4
lea eax, [esp + 0x5c]
mov word [esp + 0x5c], 0x3534
mov dword [esp + 0x5e], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x29
ja 0x421e9c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xac]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x10362364]
lea edi, [ecx + 0x64]
mov ebx, edi
and ebx, esi
and ebx, edx
xor edi, esi
and edi, edx
add ecx, edx
add ecx, 0x10362364
lea edx, [edi + ebx*2]
sub ecx, edx
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xd4]
mov edx, ecx
xor edx, 0x43
and ecx, 0x43
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x2a
jb 0x421e30
lea edi, [esp + 0xac]
lea edx, [esp + 0x38]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xd0]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
mov esi, dword [esp + 0xc]
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x421ed0
cmp eax, 0xffffffd9
jge 0x421eee
mov eax, 0xffffffff
jmp 0x421ef1
xor eax, eax
jmp 0x422a46
add eax, 0x26
push eax
call fcn.00408da0
add esp, 4
mov ebx, eax
movzx ecx, word [esi]
test cx, cx
je 0x421f21
lea edx, [esi + 2]
mov eax, ebx
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 0x421f10
mov word [eax], 0
movzx ecx, word [esp + 0xac]
test cx, cx
je 0x421f51
lea edx, [esp + 0xae]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421f40
mov word [eax], 0
jmp dword [0x443448]
push esi
call fcn.00408db0
add esp, 4
lea eax, [esp + 0x10]
push 0x60
push 3
push 0x120089
push eax
push ebx
call fcn.0043aa20
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp + 0xc], 0
mov dword [esp + 0x18], 0
jmp dword [eax*4 + 0x443450]
lea eax, [esp + 0x30]
push 0
push eax
push dword [esp + 0x18]
call fcn.0043ada0
add esp, 0xc
not eax
shr eax, 0x1f
xor edi, edi
mov dword [esp + 0x18], 0
jmp dword [eax*4 + 0x443458]
mov esi, dword [esp + 0x30]
lea eax, [esi + 1]
push eax
call fcn.00408da0
add esp, 4
push 0
push esi
mov dword [esp + 0x90], eax
push eax
push dword [esp + 0x1c]
call fcn.0043aea0
add esp, 0x10
not eax
shr eax, 0x1f
xor edi, edi
mov dword [esp + 0x18], 0
jmp dword [eax*4 + 0x443460]
mov dword [esp + 0x90], ebx
mov edi, dword [esp + 0x88]
jmp dword [0x44346c]
mov esi, dword [esp + 0xa8]
lea eax, [esi + 1]
push eax
call fcn.00408da0
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0xa4]
call fcn.0043aea0
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
jmp dword [eax*4 + 0x443500]
mov esi, dword [esp + 0xa8]
mov byte [edi + esi], 0
push 0x20
call fcn.00408da0
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 esi, eax
push edi
call fcn.004243b0
movzx eax, al
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
jmp dword [eax*4 + 0x443508]
mov dword [esp + 0x8c], edi
mov dword [esp + 0x38], 0xa7b4ae8b
mov dword [esp + 0x3c], 0x8a94849b
mov dword [esp + 0x40], 0x9783bfd7
mov dword [esp + 0x44], 0xbcd98092
mov dword [esp + 0x48], 0x9e8b8494
mov dword [esp + 0x4c], 0x8181b6c3
mov dword [esp + 0x50], 0x8f919c86
mov dword [esp + 0x54], 0x979d9cbf
mov word [esp + 0x58], 0xf995
mov dword [esp + 0x5e], 0
mov dword [esp + 0x5a], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x29
ja 0x422170
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0xc820a1dc
add eax, 0xc820a1dc
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0xfc
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x2a
jb 0x422130
mov ecx, esi
lea eax, [esp + 0x38]
push eax
call fcn.00424620
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x24]
mov dword [esp + 0x20], edx
jmp dword [ecx*4 + 0x443510]
mov eax, dword [case.0x422a72.32]
mov edi, dword [esp + 0x8c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x4435e0]
jmp dword [0x4435ec]
mov ecx, esi
call fcn.004247f0
push esi
call fcn.00408db0
add esp, 4
nop
nop
mov ecx, esi
call fcn.004247f0
push esi
call fcn.00408db0
add esp, 4
jmp dword [0x4435f0]
jmp dword [0x4435f8]
push edi
call fcn.00408db0
add esp, 4
jmp case.0x422a72.28
add eax, 8
mov dword [esp + 0x1c], 0
mov edx, dword [eax]
xor eax, eax
test edx, edx
setne al
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
mov ecx, edx
mov dword [esp + 0x28], esi
jmp dword [eax*4 + 0x443518]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x443518]
mov edx, dword [ecx]
cmp dword [ecx + 0x18], 3
mov edi, 0
jne 0x422253
mov edi, dword [ecx + 0x10]
mov eax, dword [case.0x422193.7]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x443530]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x443538]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x94], ecx
mov ecx, edi
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne case.default.0x4222d4
mov ecx, eax
xor ecx, edi
mov edx, edi
not edx
and edx, eax
mov eax, 1
sub eax, ecx
shr eax, 1
add eax, edx
and eax, 0x7fffffff
mov dword [esp + 0x90], eax
inc eax
push eax
call fcn.00408da0
add esp, 4
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
mov dword [esp + 0x88], eax
jmp dword [edx*4 + 0x443540]
inc edi
mov byte [eax], cl
inc eax
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x443540]
mov edx, ecx
or edx, 0x20
lea esi, [edx - 0x61]
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0x42230a
mov ecx, 0xffffffff
cmp esi, 6
jae case.default.0x42231f
add edx, 0xffffffa9
mov ecx, edx
movsx edx, byte [edi + 1]
xor ebx, ebx
test edx, edx
setne bl
jmp dword [ebx*4 + 0x443548]
mov esi, edx
or esi, 0x20
lea ebx, [esi - 0x61]
add edx, 0xffffffd0
cmp edx, 0xa
jb 0x42233b
mov edx, 0xffffffff
shl ecx, 4
add edi, 2
cmp ebx, 6
jae case.default.0x42235a
add esi, 0xffffffa9
mov edx, esi
or edx, ecx
mov byte [eax], dl
inc eax
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x443540]
mov byte [eax], 0
push 0
push 0x10
push 0
push dword [esp + 0x38]
call fcn.00424890
add esp, 0x10
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa0], edx
mov ecx, dword [case.0x42231f.5]
mov ebx, dword [case.0x422193.31]
mov dword [esp + 0x34], 0
mov edi, dword [case.0x422193.37]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor eax, eax
cmp edx, dword [esp + 0xc]
setne al
jmp dword [eax*4 + 0x443560]
mov eax, dword [edx + 4]
mov esi, eax
shr esi, 0x1c
shl eax, 4
or eax, 1
xor esi, dword [esp + 0xa0]
xor eax, dword [esp + 0xa4]
mov dword [esp + 0x2c], edx
xor edx, edx
or eax, esi
sete dl
jmp dword [edx*4 + 0x443578]
mov eax, 1
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
jmp case.0x422193.28
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
mov dword [esp + 0x34], eax
xor eax, eax
mov esi, dword [esp + 0x28]
nop
jmp ebx
jmp dword [eax*4 + 0x443590]
add edx, 8
nop
nop
nop
nop
jmp edi
jmp case.0x42235a.4
mov eax, dword [case.0x422193.25]
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
mov ebx, dword [esp + 0x34]
test ebx, ebx
setne al
jmp dword [eax*4 + 0x4435a8]
mov ecx, dword [esp + 0x94]
jmp dword [0x4435c8]
mov eax, dword [esp + 0x90]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x3c], eax
xor eax, eax
mov edi, dword [esp + 0x20]
nop
nop
nop
cmp byte [ebx + eax], 0
lea eax, [eax + 1]
jne case.default.0x4224d3
add eax, ebx
dec eax
mov ecx, ebx
not ecx
and ecx, eax
xor eax, ebx
add ecx, ecx
sub ecx, eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
push 0x932a8d34
push dword [0x4484b0]
call fcn.00439e70
add esp, 8
lea ecx, [esp + 4]
lea edx, [esp + 0x10]
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 + 0x4435b0]
jmp dword [0x4435bc]
mov ecx, dword [esp + 0x1c]
jmp 0x42251d
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 0x94]
jmp dword [0x4435c8]
push dword [esp + 0x88]
mov edi, ecx
call fcn.00408db0
mov ecx, edi
add esp, 4
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x443518]
movzx eax, byte [ebx]
test al, al
je 0x42253d
mov dword [esp + 0x1c], ecx
lea ecx, [ebx + 1]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x422530
jmp 0x422541
mov dword [esp + 0x1c], ecx
mov word [edi], 0x203a
mov eax, edi
add eax, 2
mov esi, dword [esp + 0x10]
test esi, esi
je 0x42257b
mov ecx, dword [esp + 0x14]
mov edx, esi
and edx, 3
je 0x422583
xor edi, edi
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + edi], bl
inc edi
cmp edx, edi
jne 0x422560
mov edx, esi
sub edx, edi
add eax, edi
mov edi, eax
jmp 0x422585
mov edi, eax
mov esi, dword [esp + 0x28]
jmp 0x4225c9
mov edx, esi
cmp esi, 4
mov esi, dword [esp + 0x28]
jb 0x4225c9
nop
nop
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 0x422590
mov byte [edi], 0xa
inc edi
mov eax, dword [esp + 0x1c]
and al, 1
movzx eax, al
mov ecx, eax
xor ecx, 1
add ecx, eax
setne al
mov dword [esp + 0x1c], eax
push 0x2e0ec9bb
push dword [0x44849c]
call fcn.00439e70
add esp, 8
push dword [esp + 0x14]
call eax
mov ebx, dword [esp + 0x34]
jmp dword [0x4435c0]
movzx eax, byte [ebx]
test al, al
je 0x42262b
lea ecx, [ebx + 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x422620
mov word [edi], 0x203a
add edi, 2
mov edx, dword [esp + 0x10]
test edx, edx
je 0x42266f
mov eax, dword [esp + 0x14]
mov ecx, edx
and ecx, 3
je 0x422673
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax]
cmp bl, 1
sbb eax, 0xffffffff
mov byte [edi + esi], bl
inc esi
cmp ecx, esi
jne 0x422650
mov ecx, edx
sub ecx, esi
add edi, esi
mov esi, edi
mov ebx, dword [esp + 0x34]
jmp 0x422675
mov esi, edi
jmp 0x4226b9
mov ecx, edx
cmp edx, 4
jb 0x4226b9
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi + 1], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi + 2], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
lea esi, [edi + 4]
mov byte [edi + 3], dl
mov edi, esi
add ecx, 0xfffffffc
jne 0x422680
mov byte [esi], 0xa
inc esi
push 0x2e0ec9bb
push dword [0x44849c]
call fcn.00439e70
add esp, 8
push dword [esp + 0x14]
call eax
mov cl, 1
mov edi, esi
jmp 0x42251d
jmp dword [0x44361c]
mov ebx, dword [esp + 0x30]
test ebx, ebx
jns 0x4226f4
mov eax, 0xffffffff
jmp 0x4226f7
lea eax, [ebx + ebx]
push eax
call fcn.00408da0
add esp, 4
push edi
push ebx
push eax
push 0x1e
push esi
mov esi, eax
push 0
call dword [0x447498]
lea eax, [esp + 0x98]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.0043aa20
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4434e0]
mov dword [esp + 0x1c], 0
mov eax, dword [case.0x422a72.97]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
mov edi, dword [esp + 0xc]
jmp case.0x422a72.94
jmp dword [0x4434e8]
jmp dword [0x4434d0]
push ebx
call fcn.00408db0
add esp, 4
xor eax, eax
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
cmp ecx, edi
sete al
jmp dword [eax*4 + 0x4434d8]
xor eax, eax
jmp 0x422a06
xor eax, eax
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
cmp ecx, edi
sete al
jmp dword [eax*4 + 0x4434d8]
mov eax, edi
sub eax, ecx
sar eax, 3
mov ecx, eax
and ecx, 0x421
mov edx, eax
or eax, 0x421
imul eax, ecx
xor ecx, 0x421
and edx, 0xfffffbde
imul edx, ecx
add eax, edx
push eax
call fcn.00408da0
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], 0xab68a58d
mov dword [esp + 0x3c], 0xaf4da95b
mov dword [esp + 0x40], 0xb340ad49
mov dword [esp + 0x44], 0xb740b175
mov dword [esp + 0x48], 0xbb70b546
mov dword [esp + 0x4c], 0xbf4cb95d
mov dword [esp + 0x50], 0x4397bd59
mov dword [esp + 0x54], 0x4795419e
mov dword [esp + 0x58], 0x4baf45b2
mov dword [esp + 0x5c], 0x4fbb49ad
mov dword [esp + 0x60], 0x53a04d92
mov dword [esp + 0x64], 0x57b551a3
mov dword [esp + 0x68], 0x5bb855b1
mov dword [esp + 0x6c], 0x5fa25968
mov dword [esp + 0x70], 0x63b65dba
lea eax, [esp + 0x74]
mov word [esp + 0x74], 0x6162
mov dword [esp + 0x76], 0
mov dword [esp + 0x79], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x44
ja 0x4228c8
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + edx]
add esi, 0xd9c100e5
add ecx, 0xd9c100e5
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xd4], esi
mov ecx, dword [esp + 0xd4]
add cl, 0xbd
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x45
jb 0x422880
lea esi, [esp + 0xd4]
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 + 0x110]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x30]
push edi
push 0
push 0
push 0x1e
push esi
push 0
call dword [0x447498]
jmp 0x4226e5
mov esi, dword [esp + 0x8c]
mov ecx, esi
call fcn.004247f0
push esi
call fcn.00408db0
add esp, 4
jmp dword [0x4434b8]
mov dword [esp + 0xc], edi
jmp dword [0x4434c0]
mov esi, dword [esp + 0x20]
mov byte [esi], 0
sub esi, dword [esp + 0x24]
mov dword [esp + 0x38], 0xc7c8c9a5
mov dword [esp + 0x3c], 0xcbdfd8c1
mov dword [esp + 0x40], 0xc6cec0c5
mov dword [esp + 0x44], 0xd0c0a083
mov dword [esp + 0x48], 0x9fb9f6d5
mov dword [esp + 0x4c], 0xf1ebf0fb
mov dword [esp + 0x50], 0xcbf4bffb
mov word [esp + 0x54], 0x45f6
mov dword [esp + 0x56], 0
mov byte [esp + 0x5a], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x22
ja 0x4229dc
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0xf]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x92182d0f
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x97
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x23
jb 0x4229a0
mov ecx, dword [ebp + 8]
push esi
push dword [esp + 0x28]
lea eax, [esp + 0x40]
push eax
call fcn.00409790
jmp dword [0x443630]
push dword [esp + 0x24]
mov esi, eax
call fcn.00408db0
mov eax, esi
add esp, 4
and al, 1
mov esi, dword [esp + 0x18]
test esi, esi
je 0x422a46
cmp esi, edi
je 0x422a46
mov ebx, eax
jmp 0x422a24
cmp esi, edi
je 0x422a38
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x422a20
push eax
call fcn.00408db0
add esp, 4
jmp 0x422a20
push dword [esp + 0x18]
call fcn.00408db0
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov dword [edx + ecx*8 + 4], eax
add edi, 8
mov ecx, dword [esp + 0xa4]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x443488]
mov dword [esp + 0xa4], ecx
mov ebx, dword [ecx]
mov esi, edi
sub edi, edx
sar edi, 3
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x28], edi
je 0x422a9a
mov ecx, edx
jmp 0x422b35
mov ecx, edx
xor ecx, esi
mov dword [esp + 0x18], edx
mov eax, edx
not eax
and eax, esi
add eax, eax
sub eax, ecx
sar eax, 3
mov ecx, eax
shr ecx, 1
add ecx, eax
lea eax, [edi + 1]
cmp ecx, eax
ja 0x422abe
mov ecx, eax
mov dword [esp + 0xc], ecx
lea eax, [ecx*8]
push eax
call fcn.00408da0
add esp, 4
mov ecx, eax
mov edx, dword [esp + 0x18]
test edx, edx
mov edi, dword [esp + 0x20]
je 0x422b23
cmp edx, edi
je 0x422b16
xor eax, eax
mov esi, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [edx + eax]
mov dword [esi + eax], ecx
mov ecx, dword [edx + eax + 4]
mov dword [esi + eax + 4], ecx
mov dword [edx + eax], 0
lea ecx, [edx + eax]
add ecx, 8
add eax, 8
cmp ecx, edi
jne 0x422af0
mov edi, edx
jmp 0x422b18
mov esi, ecx
push edi
call fcn.00408db0
add esp, 4
mov ecx, esi
mov edi, dword [esp + 0x28]
lea esi, [ecx + edi*8]
mov eax, dword [esp + 0xc]
lea eax, [ecx + eax*8]
mov dword [esp + 0x20], eax
mov dword [esp + 0xc], esi
mov dword [ecx + edi*8], 0
mov dword [esp + 0x18], ecx
mov dword [ecx + edi*8 + 4], 0
xor eax, eax
nop
nop
cmp byte [ebx + eax], 0
lea eax, [eax + 1]
jne 0x422b50
add eax, ebx
dec eax
mov ecx, ebx
not ecx
and ecx, eax
xor eax, ebx
add ecx, ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x24], eax
sub ecx, eax
mov dword [esp + 0x2c], ecx
lea esi, [ecx + 1]
push esi
call fcn.00408da0
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x18]
mov dword [eax + edi*8], edx
mov ecx, esi
shr ecx, 2
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
and esi, 0xfffffffc
add edx, esi
mov edi, edx
add esi, ebx
mov edx, 0xfffffffe
sub edx, dword [esp + 0x2c]
mov eax, edx
or eax, 0xfffffffc
mov dword [esp + 0x1c], eax
mov ecx, eax
not ecx
mov dword [esp + 0x94], ecx
shr ecx, 1
mov dword [esp + 0x34], esi
mov dword [esp + 0x9c], edi
mov eax, dword [esp + 0x34]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
or edx, 0xfffffffd
sub edx, dword [esp + 0x1c]
je 0x422bfe
mov eax, dword [esp + 0x94]
and eax, 0xfffffffe
add esi, eax
mov ecx, dword [esp + 0x9c]
add ecx, eax
push edx
push esi
push ecx
call fcn.00408dd0
add esp, 0xc
xor eax, eax
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x24]
cmp ecx, edx
mov edi, dword [esp + 0xc]
je 0x422a50
inc edx
cmp ecx, edx
jne 0x422c20
xor eax, eax
jmp 0x422c6b
mov ecx, dword [esp + 0x2c]
and ecx, 0xfffffffe
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx]
xor dl, al
not dl
movzx edx, dl
shr eax, 8
or eax, 0xff000000
xor eax, dword [edx*4 + 0x43d7a0]
movzx edx, byte [ebx + 1]
xor dl, al
add ebx, 2
not dl
movzx edx, dl
shr eax, 8
or eax, 0xff000000
xor eax, dword [edx*4 + 0x43d7a0]
add ecx, 0xfffffffe
jne 0x422c30
test byte [esp + 0x2c], 1
je 0x422a50
movzx ecx, byte [ebx]
xor cl, al
not cl
movzx ecx, cl
shr eax, 8
or eax, 0xff000000
xor eax, dword [ecx*4 + 0x43d7a0]
jmp 0x422a50
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], 0x3a393837
mov dword [esp + 0x3c], 0
mov word [esp + 0x40], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 9
ja 0x422d07
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 7]
and esi, edx
mov edi, 0xeadf4f8
sub edi, ecx
or edi, edx
not edi
add edi, edx
sub edi, esi
mov dword [esp + 0xd4], edi
mov ecx, dword [esp + 0xd4]
add cl, 0xcf
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xa
jb 0x422cc0
mov ecx, dword [0x4484a4]
test ecx, ecx
je case.0x422a72.14
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x4484a8]
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x422d30
inc esi
cmp ecx, esi
jne 0x422d20
jmp case.0x422a72.14
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x422a72.14
push eax
push 1
push dword [0x4484ac]
push ecx
call fcn.00437d00
add esp, 0x10
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], 0x3a393837
mov dword [esp + 0x3c], 0
mov word [esp + 0x40], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 9
ja 0x422dc7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 7]
and esi, edx
mov edi, 0xeadf4f8
sub edi, ecx
or edi, edx
not edi
add edi, edx
sub edi, esi
mov dword [esp + 0xd4], edi
mov ecx, dword [esp + 0xd4]
add cl, 0xcf
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xa
jb 0x422d80
mov ecx, dword [0x4484a4]
test ecx, ecx
je 0x422df8
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x4484a8]
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x422df0
inc esi
cmp ecx, esi
jne 0x422de0
jmp 0x422df8
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x422dfe
jmp dword [0x4434cc]
push eax
push 1
push dword [0x4484ac]
push ecx
call fcn.00437d00
add esp, 0x10
jmp dword [0x4434cc]
not eax
shr eax, 0x1f
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x9c], esi
jmp dword [eax*4 + 0x4434f8]
mov eax, dword [esp + 0x98]
mov dword [esp + 0x38], 0x3a393837
mov dword [esp + 0x3c], 0
mov word [esp + 0x40], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 9
ja 0x422eb1
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 7]
and esi, edx
mov edi, 0xeadf4f8
sub edi, ecx
or edi, edx
not edi
add edi, edx
sub edi, esi
mov dword [esp + 4], edi
mov ecx, dword [esp + 4]
add cl, 0xcf
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0xa
jb 0x422e70
mov ecx, dword [0x4484a4]
test ecx, ecx
je 0x422efa
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x4484a8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x422ee0
inc esi
cmp ecx, esi
jne 0x422ed0
jmp 0x422efa
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x422efa
push eax
push 1
push dword [0x4484ac]
push ecx
call fcn.00437d00
add esp, 0x10
mov eax, dword [case.0x422a72.97]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x9c]
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x443610]
add eax, 8
xor edx, edx
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
xor edi, edi
mov dword [esp + 0x20], 0
jmp dword [eax*4 + 0x443488]
mov dword [esp + 0x18], edx
mov eax, dword [case.0x42303e.0]
mov ebx, dword [esp + 0x90]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x4434b8]
mov dword [esp + 0xc], edi
push dword [esp + 0x88]
call fcn.00408db0
add esp, 4
jmp dword [0x4434c0]
mov dword [esp + 0x38], 0x3f2e241b
mov dword [esp + 0x3c], 0x343e2e3b
mov dword [esp + 0x40], 0x3f33077f
mov dword [esp + 0x44], 0xa793220
mov dword [esp + 0x48], 0x303b3e2a
mov dword [esp + 0x4c], 0x23d1e73
mov dword [esp + 0x50], 0x170e160f
mov word [esp + 0x54], 0x9917
mov dword [esp + 0x56], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x21
ja 0x42301c
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, eax
and edx, 0x24207e49
xor eax, 0x24207e49
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xd4]
inc al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x22
jb 0x422fd0
mov ecx, dword [esp + 0x8c]
lea eax, [esp + 0x38]
push eax
call fcn.00424620
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
mov dword [esp + 0x18], 0
jmp dword [ecx*4 + 0x443480]
mov eax, dword [case.0x421a80.60]
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 0x1c]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x443628]
jmp dword [0x443630]
lea eax, [esp + 0xa8]
push 0
push eax
push dword [esp + 0xa0]
call fcn.0043ada0
add esp, 0xc
lea eax, [esp + 0xa8]
push 0
push eax
push dword [esp + 0xa0]
call fcn.0043ada0
add esp, 0xc
jmp dword [0x4434f4]
jmp dword [0x4434b0]
mov esi, dword [esp + 0x30]
mov byte [edi + esi], 0
push 0x20
call fcn.00408da0
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.004243b0
mov ebx, dword [esp + 0x30]
mov byte [edi + ebx], 0
push 0x20
call fcn.00408da0
add esp, 4
mov esi, 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 ebx
push edi
call fcn.004243b0
jmp dword [0x443474]
movzx eax, al
xor edi, edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x8c], esi
mov ebx, dword [esp + 0x90]
jmp dword [eax*4 + 0x443478]
push esi
call fcn.00408db0
add esp, 4
push esi
call fcn.00408db0
add esp, 4
jmp dword [0x443624]
jmp dword [0x443700]
push dword [esp + 0x7c]
call fcn.00408db0
add esp, 4
jmp dword [0x44370c]
mov ecx, dword [esp + 0x88]
inc ecx
xor eax, eax
cmp ecx, 3
setne al
jmp dword [eax*4 + 0x443638]
mov dword [esp + 0x88], 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 0x4235f0
mov dword [esp + 0x74], eax
mov ebx, esi
sar ebx, 1
mov dword [esp + 0x10], 0x7b2479ca
mov dword [esp + 0x14], 0x7fd97dcb
mov dword [esp + 0x18], 0x73cc71dd
mov dword [esp + 0x1c], 0x77217512
mov dword [esp + 0x20], 0x4beb49c2
mov dword [esp + 0x24], 0x4feb4dfe
mov word [esp + 0x28], 0x414e
lea eax, [esp + 0x28]
mov word [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, 0x23
ja 0x4236b6
nop
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 + ecx]
add edx, 0x2b51b74f
add eax, 0x2b51b74f
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xd4], edx
mov eax, dword [esp + 0xd4]
add al, 0xd7
mov ecx, dword [esp + 0x50]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x50]
mov eax, dword [esp + 0x50]
cmp eax, 0x24
jb 0x423670
lea edi, [esp + 0x9c]
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 + 0xb4]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x8c]
lea ecx, [ebx + eax]
add ecx, 0xd
test ecx, ecx
jns 0x423700
mov eax, 0xffffffff
jmp 0x423707
add eax, ebx
add eax, eax
add eax, 0x1a
push eax
call fcn.00408da0
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x7c]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x423741
mov edx, dword [esp + 0x94]
mov eax, edi
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 0x423730
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esp + 0x74]
movzx ecx, word [edx]
test cx, cx
je 0x423771
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 0x423760
mov word [eax], 0
movzx ecx, word [esp + 0x9c]
test cx, cx
mov dword [esp + 0x110], ebx
je 0x4237b1
lea edx, [esp + 0x9e]
nop
nop
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 0x4237a0
mov word [eax], 0
lea eax, [esp + 0x80]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0x11c], edi
push edi
call fcn.0043aa20
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp + 0xc], 0
jmp dword [eax*4 + 0x443640]
jmp dword [0x4436d0]
push dword [esp + 0x10c]
call fcn.00408db0
add esp, 4
mov eax, dword [case.0x422a72.150]
mov ebx, dword [esp + 0x110]
nop
nop
nop
nop
jmp eax
movzx eax, byte [esp + 0xc]
jmp dword [eax*4 + 0x4436e8]
mov dword [esp + 0x10], 0x33e035d2
mov dword [esp + 0x14], 0xcfcd31c3
mov dword [esp + 0x18], 0xcb38cd31
mov dword [esp + 0x1c], 0xc725c9ea
mov dword [esp + 0x20], 0xc335c54a
mov dword [esp + 0x24], 0xdf3fc14c
mov dword [esp + 0x28], 0xdb27dd27
mov dword [esp + 0x2c], 0xd72cd93e
mov dword [esp + 0x30], 0xd35ed52d
mov dword [esp + 0x34], 0xef24d129
mov dword [esp + 0x38], 0xeb12ed12
mov word [esp + 0x3c], 0xe9ea
mov dword [esp + 0x42], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 0x35
ja 0x4238e7
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax - 0xc5a5107]
lea edi, [eax + 0xf9]
and edi, ecx
and edx, edi
add eax, ecx
add eax, 0xf3a5aef9
add edx, edi
sub eax, edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
add al, 0x31
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 0x36
jb 0x4238a0
lea edi, [esp + 0xd4]
lea eax, [esp + 0x10]
mov ecx, 0xb
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x3c]
mov ecx, 1
lea edi, [esp + 0x100]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x8c]
lea ecx, [ebx + eax]
add ecx, 0x17
test ecx, ecx
jns 0x423bc0
mov eax, 0xffffffff
jmp 0x423bc8
lea eax, [esp + 0x98]
push 0
push eax
push dword [esp + 0x88]
call fcn.0043ada0
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 0xc], 0
jmp dword [eax*4 + 0x443648]
mov edi, dword [esp + 0x98]
lea eax, [edi + 1]
push eax
call fcn.00408da0
add esp, 4
push 0
push edi
mov edi, eax
push eax
push dword [esp + 0x8c]
call fcn.0043aea0
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esp + 0xc], 0
jmp dword [eax*4 + 0x443650]
mov eax, dword [esp + 0x98]
mov byte [edi + eax], 0
push edi
call fcn.00401ec0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0xc], 0
jmp dword [ecx*4 + 0x443658]
mov ebx, edi
mov dword [esp + 0x90], eax
push eax
call fcn.00402800
add esp, 4
mov dword [esp + 0x10], 0xded9ccd7
mov dword [esp + 0x14], 0xcbccf6c8
mov dword [esp + 0x18], 0xd6ced680
mov dword [esp + 0x1c], 0xc3c4fec0
mov dword [esp + 0x20], 0xf6e9edd1
mov word [esp + 0x24], 0xc6ed
mov byte [esp + 0x26], 0x4c
lea ecx, [esp + 0x28]
mov word [ecx + 3], 0
mov dword [ecx - 1], 0
mov dword [esp + 0x50], 0
mov ecx, dword [esp + 0x50]
cmp ecx, 0x1c
ja 0x423a77
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x50]
movzx edx, byte [esp + edx + 0x10]
lea edi, [ecx + 0x399fa08f]
add ecx, 0x8f
or ecx, edi
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esp + 0xd4], edi
mov ecx, dword [esp + 0xd4]
add cl, 0x17
mov edx, dword [esp + 0x50]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
cmp ecx, 0x1d
jb 0x423a30
mov dword [esp + 0x108], ebx
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.00402950
add esp, 8
lea edx, [eax - 1]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edx
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x423aa0
mov ecx, edx
xor ecx, eax
mov edi, eax
not edi
and edi, edx
add edi, edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x68], ecx
sub edi, ecx
mov edx, edi
and edx, 0xfffffffc
mov ecx, edi
and ecx, 3
mov ebx, edi
or ebx, 3
imul ebx, ecx
xor ecx, 3
imul ecx, edx
mov edx, ebx
add edx, ecx
mov ebx, edi
shr edx, 2
cmp byte [edi + eax - 1], 0x3d
mov dword [esp + 0x64], edi
je 0x423b09
mov edi, edx
mov edx, ebx
xor edx, 0xfffffffe
mov ecx, dword [esp + 0x64]
and ecx, 0xfffffffe
lea ecx, [edx + ecx*2]
mov edx, edi
cmp byte [eax + ecx + 1], 0x2e
mov ebx, dword [esp + 0x64]
jne 0x423b0a
dec edx
mov edi, dword [esp + 0x68]
movzx ecx, byte [ebx + eax - 2]
cmp ecx, 0x3d
mov dword [esp + 0x78], eax
je 0x423b21
cmp ecx, 0x2e
jne 0x423b22
dec edx
mov dword [esp + 0x104], edx
lea eax, [edx + 1]
push eax
call fcn.00408da0
add esp, 4
mov dword [esp + 0x70], eax
cmp dword [esp + 0xc], edi
mov edx, dword [esp + 0x78]
jne case.default.0x423ba2
mov eax, dword [esp + 0x104]
add eax, 0xfffffffb
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0x70]
mov eax, edi
add eax, 5
mov dword [esp + 0x54], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
push 0x932a8d34
push dword [0x4484b0]
call fcn.00439e70
add esp, 8
lea ecx, [esp + 0x48]
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 + 0x443660]
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 0x90]
jmp dword [0x443680]
add ebx, eax
lea eax, [ebx + ebx]
add eax, 0x2e
push eax
call fcn.00408da0
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x7c]
movzx ecx, word [eax]
mov eax, ebx
test cx, cx
je 0x423c01
mov edx, dword [esp + 0x94]
mov eax, ebx
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x423bf0
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esp + 0x74]
movzx ecx, word [edx]
test cx, cx
je 0x423c31
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 0x423c20
mov word [eax], 0
movzx ecx, word [esp + 0xd4]
test cx, cx
je 0x423c61
lea edx, [esp + 0xd6]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x423c50
mov word [eax], 0
mov dword [esp + 0x10], 0x9bee99af
mov dword [esp + 0x14], 0x971895e9
mov dword [esp + 0x18], 0x93e691ed
mov dword [esp + 0x1c], 0xafccadd0
mov word [esp + 0x20], 0xa9a8
mov dword [esp + 0x26], 0
mov dword [esp + 0x22], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x19
ja 0x423d01
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + ecx + 0x10]
mov ecx, 0xedda6f6b
sub ecx, eax
add eax, 0x94
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x48]
mov ecx, eax
or ecx, 0xf3
and eax, 0xf3
add eax, ecx
inc al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x1a
jb 0x423cb0
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]
mov ecx, 1
lea edi, [esp + 0x60]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
cmp esi, 0xffffffed
jge 0x423d30
mov esi, 0xffffffff
jmp 0x423d33
add esi, 0x12
push esi
call fcn.00408da0
add esp, 4
mov edi, eax
mov edx, dword [esp + 0x74]
movzx ecx, word [edx]
test cx, cx
je 0x423d61
add edx, 2
mov eax, edi
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x423d50
mov word [eax], 0
movzx ecx, word [esp + 0x50]
test cx, cx
je 0x423d91
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 0x423d80
mov word [eax], 0
mov dword [esp + 0x10], 0xb3b4b560
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x423e02
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + ecx + 0x10]
mov ecx, 0x53805836
sub ecx, eax
add eax, 0xc9
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x48]
add al, 0x81
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x423dc0
push 0
push 0
push 0xc00000
lea eax, [esp + 0x1c]
push eax
push ebx
push edi
push dword [ebp + 8]
call fcn.0041a520
add esp, 0x1c
mov ecx, dword [esp + 0x84]
and cl, 1
or cl, al
mov dword [esp + 0x84], ecx
jmp dword [0x4436f0]
push edi
call fcn.00408db0
add esp, 4
jmp dword [0x4436f8]
mov ecx, dword [esp + 0x88]
inc ecx
xor eax, eax
cmp ecx, 3
setne al
jmp dword [eax*4 + 0x443638]
jmp dword [0x4436f8]
push ebx
call fcn.00408db0
add esp, 4
mov ecx, dword [esp + 0x88]
inc ecx
xor eax, eax
cmp ecx, 3
setne al
jmp dword [eax*4 + 0x443638]
xor ebx, ebx
mov edi, 2
jmp 0x423ea8
mov edx, dword [esp + 0x78]
lea eax, [edi + 4]
add edi, 2
mov ebx, dword [esp + 0xc]
cmp edi, ecx
mov edi, eax
jae 0x423b47
mov dword [esp + 0x68], ebx
movzx eax, byte [edx + edi - 2]
push eax
mov ebx, edx
call fcn.00417d50
add esp, 4
mov byte [esp + 0xc], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00417d50
add esp, 4
mov edx, eax
movzx ecx, byte [esp + 0xc]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x68]
mov byte [ecx + ebx], al
lea eax, [ebx + 1]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x64]
cmp edi, ecx
jae 0x423e90
mov byte [esp + 0xb], dl
mov ebx, dword [esp + 0x78]
movzx eax, byte [ebx + edi]
push eax
call fcn.00417d50
mov ecx, dword [esp + 0x68]
add esp, 4
cmp al, 0x40
mov edx, ebx
je 0x423e94
movzx ecx, byte [esp + 0xb]
shl cl, 4
mov byte [esp + 0xb], al
shr al, 2
and al, 0xf
or al, cl
mov ebx, dword [esp + 0x68]
lea ecx, [ebx + 2]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x70]
mov byte [ecx + ebx + 1], al
mov ecx, dword [esp + 0x64]
lea eax, [edi + 1]
cmp eax, ecx
jae 0x423e94
movzx eax, byte [edx + edi + 1]
push eax
call fcn.00417d50
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x7c]
add esp, 4
cmp al, 0x40
mov ah, byte [esp + 0xb]
je 0x423e94
shl ah, 6
add al, ah
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x68]
mov byte [ecx + ebx + 2], al
mov ecx, dword [esp + 0x64]
add ebx, 3
mov dword [esp + 0xc], ebx
jmp 0x423e94
mov dword [esp + 0x10], 0xba60d7f
mov dword [esp + 0x14], 0x176409b8
mov dword [esp + 0x18], 0x13aa15a8
mov dword [esp + 0x1c], 0x1f1e11ac
mov word [esp + 0x20], 0
mov dword [esp + 0x6c], 0
mov eax, dword [esp + 0x6c]
cmp eax, 0x11
ja 0x42401a
nop
nop
nop
nop
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + ecx + 0x10]
lea ecx, [eax + edx]
add ecx, 0x5e95752a
add eax, 0x5e95752a
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xda
mov ecx, dword [esp + 0x6c]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
cmp eax, 0x12
jb 0x423fd0
lea edi, [esp + 0xd4]
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 + 0xe4]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
cmp esi, 0xffffffef
jge 0x42404c
mov eax, 0xffffffff
jmp 0x42404f
lea eax, [esi + 0x10]
push eax
call fcn.00408da0
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x74]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x424091
mov eax, dword [esp + 0x74]
lea edx, [eax + 2]
mov eax, edi
nop
nop
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 0x424080
mov word [eax], 0
movzx ecx, word [esp + 0xd4]
test cx, cx
je 0x4240c1
lea edx, [esp + 0xd6]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4240b0
mov word [eax], 0
mov ecx, dword [ebp + 8]
push dword [esp + 0x48]
push dword [esp + 0x50]
push edi
call fcn.004095e0
mov dword [esp + 0xc], eax
jmp dword [0x443668]
jmp dword [0x443670]
jmp dword [0x4436a8]
jmp dword [0x4436b0]
jmp dword [0x443688]
push edi
call fcn.00408db0
add esp, 4
nop
nop
nop
nop
nop
push edi
call fcn.00408db0
add esp, 4
jmp dword [0x443690]
cmp dword [ebx + edi*8], 0x11081610
je 0x424130
inc edi
cmp ecx, edi
jne 0x424120
jmp case.0x422a72.143
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x422a72.143
push eax
push 1
push dword [0x4484ac]
push ecx
call fcn.00437d00
add esp, 0x10
jmp case.0x422a72.143
jmp dword [0x4436c8]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], 0x3a393837
mov dword [esp + 0x14], 0
mov word [esp + 0x18], 0
mov dword [esp + 0x50], 0
mov ecx, dword [esp + 0x50]
cmp ecx, 9
ja 0x4241d7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x50]
movzx edx, byte [esp + edx + 0x10]
lea edi, [ecx + 7]
and edi, edx
mov ebx, 0xeadf4f8
sub ebx, ecx
or ebx, edx
not ebx
add ebx, edx
sub ebx, edi
mov dword [esp + 0xd4], ebx
mov ecx, dword [esp + 0xd4]
add cl, 0xcf
mov edx, dword [esp + 0x50]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
cmp ecx, 0xa
jb 0x424190
mov ecx, dword [0x4484a4]
test ecx, ecx
je 0x424150
mov edx, dword [esp + 0x10]
xor edi, edi
mov ebx, dword [0x4484a8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x424220
inc edi
cmp ecx, edi
jne 0x424200
jmp 0x424150
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x424150
push eax
push 1
push dword [0x4484ac]
push ecx
call fcn.00437d00
add esp, 0x10
jmp 0x424150
jmp dword [0x4436c4]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], 0x3a393837
lea ecx, [esp + 0x28]
mov word [ecx - 0x10], 0
mov dword [ecx - 0x14], 0
mov dword [esp + 0x50], 0
mov ecx, dword [esp + 0x50]
cmp ecx, 9
ja 0x4242d7
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x50]
movzx edx, byte [esp + edx + 0x10]
lea edi, [ecx + 7]
and edi, edx
mov ebx, 0xeadf4f8
sub ebx, ecx
or ebx, edx
not ebx
add ebx, edx
sub ebx, edi
mov dword [esp + 0xd4], ebx
mov ecx, dword [esp + 0xd4]
add cl, 0xcf
mov edx, dword [esp + 0x50]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
cmp ecx, 0xa
jb 0x424290
mov ecx, dword [0x4484a4]
test ecx, ecx
je case.0x422a72.143
mov edx, dword [esp + 0x10]
xor edi, edi
mov ebx, dword [0x4484a8]
jmp 0x424120
push edi
call fcn.00408db0
add esp, 4
push edi
call fcn.00408db0
add esp, 4
jmp dword [0x4436b8]
push ebx
call fcn.00402a90
add esp, 4
push ebx
call fcn.00402a90
add esp, 4
jmp dword [0x4436a4]
mov edi, dword [esp + 0x108]
jmp dword [0x443698]
push edi
call fcn.00408db0
add esp, 4
push edi
call fcn.00408db0
add esp, 4
jmp dword [0x44367c]
push 0x2e0ec9bb
push dword [0x44849c]
call fcn.00439e70
add esp, 8
push dword [esp + 0x4c]
call eax
mov ebx, dword [esp + 0x90]
mov edi, dword [esp + 0x70]
jmp dword [0x443680]
jmp dword [0x44370c]
jmp dword [0x443710]
jmp dword [0x443710]
mov eax, dword [esp + 0x84]
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret