Function at 0x420ed6
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], 0x7b0c7913
mov dword [esp + 0x64], 0x7f1f7d1d
mov dword [esp + 0x68], 0x734e7101
mov dword [esp + 0x6c], 0x77fc7515
mov dword [esp + 0x70], 0x8b888911
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x1f
ja 0x41ffcf
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 + 0xef]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x158817ef
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x77
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x20
jb 0x41ff90
lea ebx, [esp + 0x60]
lea ecx, [esp + 0x48]
push ebx
call fcn.00432a50
shr eax, 0x1f
xor edx, edx
jmp dword [eax*4 + 0x43e134]
lea ecx, [esp + 0x48]
push 0x410
call fcn.00432c90
not eax
shr eax, 0x1f
xor edx, edx
jmp dword [eax*4 + 0x43e13c]
mov dword [esp + 0x60], 0xe29bd0e5
mov dword [esp + 0x64], 0xd8e28de8
mov dword [esp + 0x68], 0xece5eb89
mov dword [esp + 0x6c], 0x879e96f5
mov dword [esp + 0x70], 0x98f3ea86
mov dword [esp + 0x74], 0x9ffce6fd
mov dword [esp + 0x78], 0x9a81fe82
mov dword [esp + 0x7c], 0x86ff84eb
mov dword [esp + 0x80], 0xe6e896ea
mov dword [esp + 0x84], 0x8eebc599
mov dword [esp + 0x88], 0x33c2e9e9
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x37
ja 0x4200e5
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 + 0x13f34]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x13f33
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x94
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x38
jb 0x4200a0
lea eax, [esp + 0xc]
lea ecx, [esp + 0x48]
push 0
push 0x2b
push ebx
push eax
call fcn.00433230
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor eax, eax
cmp edi, ecx
sete al
jmp dword [eax*4 + 0x43e144]
mov eax, ecx
sub eax, edi
sar eax, 2
mov esi, ecx
mov ecx, eax
and ecx, 0xfffffbde
mov edx, eax
and edx, 0x421
or eax, 0x421
imul eax, edx
xor edx, 0x421
imul edx, ecx
add eax, edx
push eax
call fcn.00408f60
add esp, 4
mov dword [esp + 0x40], 0
xor ecx, ecx
mov dword [esp + 0x58], esi
cmp edi, esi
setne cl
mov dword [esp + 0x3c], eax
mov dword [esp + 4], eax
jmp dword [ecx*4 + 0x43e14c]
mov esi, dword [edi]
push 0x400
push 0
push ebx
call fcn.00408fe0
add esp, 0xc
lea eax, [esp + 0x28]
lea ecx, [esp + 0x48]
push eax
push 0x400
push ebx
push esi
call fcn.004330d0
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
mov dword [esp + 0x5c], edi
jmp dword [ecx*4 + 0x43e154]
xor eax, eax
cmp dword [esp + 0x28], 0
sete al
jmp dword [eax*4 + 0x43e15c]
mov eax, 1
jmp dword [eax*4 + 0x43e164]
xor eax, eax
jmp dword [eax*4 + 0x43e164]
jmp dword [0x43e16c]
mov byte [esp + 0x45f], 0
movzx eax, byte [esp + 0x60]
test al, al
je case.0x420107.10
lea ecx, [esp + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x2e
je case.0x420107.10
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420200
jmp case.0x420107.10
jmp dword [0x43e178]
mov byte [esp + 0x45f], 0
movzx ecx, byte [esp + 0x60]
xor eax, eax
test cl, cl
je 0x420210
mov edx, ebx
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x420240
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x420230
jmp 0x420210
mov eax, edx
jmp dword [0x43e178]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e17c]
lea esi, [eax + 1]
movzx ecx, byte [eax + 1]
xor edi, edi
test cl, cl
je 0x420282
mov edx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x420280
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x420270
jmp 0x420282
mov edi, edx
xor ecx, ecx
test edi, edi
setne cl
jmp dword [ecx*4 + 0x43e184]
mov edx, edi
sub edx, esi
lea ebx, [edx + edx*2]
shr ebx, 2
movzx eax, byte [eax + edx]
cmp eax, 0x3d
je 0x4202a8
cmp eax, 0x2e
jne 0x4202a9
dec ebx
mov eax, edx
or eax, 0xfffffffd
mov ecx, edx
and ecx, 0xfffffffd
add ecx, eax
cmp byte [esi + ecx + 1], 0x3d
mov dword [esp + 0x20], edx
je 0x4202c7
cmp byte [edx + esi - 2], 0x2e
jne 0x4202c8
dec ebx
mov dword [esp + 0x54], ebx
lea eax, [ebx + 1]
push eax
call fcn.00408f60
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], esi
cmp edi, esi
je 0x4203e1
xor esi, esi
mov edi, 2
jmp 0x420312
mov edx, dword [esp + 0x44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
mov esi, edx
cmp edi, ecx
mov edi, eax
jae 0x4203e1
mov ebx, dword [esp + 0x24]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00417640
add esp, 4
mov byte [esp + 0x1c], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00417640
add esp, 4
mov bh, al
movzx ecx, byte [esp + 0x1c]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 0x18]
mov byte [ecx + esi], al
lea edx, [esi + 1]
mov ecx, dword [esp + 0x20]
cmp edi, ecx
jae 0x420300
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + edi]
push eax
mov esi, edx
call fcn.00417640
mov edx, esi
mov ecx, dword [esp + 0x24]
add esp, 4
cmp al, 0x40
je 0x420300
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov esi, dword [esp + 0x1c]
lea edx, [esi + 2]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x18]
mov byte [edx + esi + 1], al
lea eax, [edi + 1]
cmp eax, ecx
jae 0x4202f1
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00417640
mov ecx, dword [esp + 0x24]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x44]
je 0x420300
shl bl, 6
add al, bl
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov byte [edx + esi + 2], al
add esi, 3
mov edx, esi
jmp 0x420300
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x18]
mov byte [esi + eax], 0
push esi
call fcn.00401fe0
add esp, 4
mov ebx, eax
jmp dword [0x43e18c]
push esi
call fcn.00408f70
add esp, 4
push ebx
call fcn.00402900
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e194]
jmp 0x420520
mov dword [esp + 0x28], 0xbb29e83
lea ecx, [esp + 0x2c]
mov byte [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 8
ja 0x42048a
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx - 0x6a798cd3]
add ecx, 0x2d
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp], esi
mov ecx, dword [esp]
add cl, 0xc5
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 9
jb 0x420450
lea ecx, [esp + 0x28]
push ecx
push eax
call fcn.00402850
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e19c]
mov edx, dword [esp + 4]
jmp 0x4204d9
movzx ecx, byte [eax]
test cl, cl
je 0x4204cd
inc eax
mov edx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4204c0
jmp 0x4204d1
mov edx, dword [esp + 4]
mov word [edx], 0x203a
add edx, 2
movzx eax, byte [esp + 0x60]
test al, al
je 0x4204fb
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 0x4204f0
mov byte [edx], 0
mov eax, dword [case.0x42049f.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov byte [edx], 0xa
inc edx
mov dword [esp + 4], edx
mov al, 1
mov dword [esp + 0x40], eax
push ebx
call fcn.00402b90
add esp, 4
lea ebx, [esp + 0x60]
nop
nop
nop
mov eax, dword [case.0x420289.17]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov edi, dword [esp + 0x5c]
add edi, 4
xor eax, eax
cmp edi, dword [esp + 0x58]
setne al
jmp dword [eax*4 + 0x43e14c]
mov edx, dword [esp + 0x40]
mov eax, edx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x43e1d4]
mov ebx, dword [esp + 0x3c]
jmp dword [0x43e1dc]
xor edx, edx
test edi, edi
jne 0x42066e
jmp case.0x41ffe2.1
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 4]
mov byte [eax], 0
mov ebx, dword [esp + 0x3c]
sub eax, ebx
mov dword [esp + 4], eax
mov dword [esp + 0x60], 0xc7c4c5e9
mov dword [esp + 0x64], 0x43cfccc5
mov dword [esp + 0x68], 0x46bebcb9
mov dword [esp + 0x6c], 0xbc44a4fb
mov dword [esp + 0x70], 0xaff5b6b9
mov dword [esp + 0x74], 0xadbbb4b3
mov dword [esp + 0x78], 0x5350ef53
mov word [esp + 0x7c], 0xd956
mov dword [esp + 0x7e], 0
mov word [esp + 0x82], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x23
ja 0x42063b
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x60]
lea esi, [eax + 0x39]
and esi, edx
mov edi, 0xb85c57c6
sub edi, eax
or edi, edx
not edi
add edi, edx
sub edi, esi
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x28]
add al, 0x71
mov edx, dword [esp]
mov byte [esp + edx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x24
jb 0x420600
lea eax, [esp + 0x60]
push dword [esp + 4]
push ebx
push eax
call fcn.00409950
mov edx, eax
jmp dword [0x43e1dc]
push ebx
mov esi, edx
call fcn.00408f70
mov edx, esi
add esp, 4
and dl, 1
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test edi, edi
je case.0x41ffe2.1
cmp edi, ecx
je case.0x41ffe2.1
push edi
mov esi, edx
call fcn.00408f70
mov edx, esi
add esp, 4
lea ecx, [esp + 0x48]
mov ebx, edx
call fcn.00432dd0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
xor edx, edx
test edi, edi
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x43e25c]
jmp dword [ecx*4 + 0x43e1f4]
mov dword [esi + 0x40], 0xfb4af92a
mov dword [esi + 0x44], 0xff45fdbd
mov dword [esi + 0x48], 0xf345f145
mov dword [esi + 0x4c], 0xf746f546
mov dword [esi + 0x50], 0xeb44e95d
mov dword [esi + 0x54], 0xefafed55
mov dword [esi + 0x58], 0xe358e1ab
mov dword [esi + 0x5c], 0xe75ae559
mov dword [esi + 0x60], 0xdb74d9a1
mov dword [esi + 0x64], 0xdf6ddd6f
mov dword [esi + 0x68], 0xd364d198
mov dword [esi + 0x6c], 0xd797d57b
mov dword [esi + 0x70], 0xcb8fc964
mov dword [esi + 0x74], 0xcf7acd66
mov dword [esi + 0x78], 0xc35cc16d
mov dword [esi + 0x7c], 0xc763c554
mov dword [esi + 0x80], 0x3b8d396a
mov dword [esi + 0x84], 0x3f9b3dae
mov dword [esi + 0x88], 0x33af319d
mov word [esi + 0x8c], 0x3532
mov word [esi + 0x96], 0
mov dword [esi + 0x92], 0
mov dword [esi + 0x8e], 0
mov dword [esi + 0xc8], 0
mov ecx, dword [esi + 0xc8]
cmp ecx, 0x57
ja 0x42088a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0xc8]
mov edx, dword [esi + 0xc8]
movzx edx, byte [esi + edx + 0x40]
lea edi, [ecx + edx]
add edi, 0x1dfe4a3f
add ecx, 0x1dfe4a3f
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 0xf8], edi
mov ecx, dword [esi + 0xf8]
mov edx, ecx
xor edx, 0x46
and ecx, 0x46
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi + 0xc8]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 0xc8]
mov ecx, dword [esi + 0xc8]
cmp ecx, 0x58
jb 0x420830
mov ecx, esi
lea edx, [esi + 0x40]
push 0
push 0
push eax
push ecx
push edx
call fcn.004370e0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x43e1fc]
lea edi, [esi + 0x30]
lea eax, [esi + 0x24]
push edi
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esi]
call fcn.00437500
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43e204]
mov ebx, edi
mov ecx, dword [esi + 0x30]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x4208e5
mov eax, 0xffffffff
push eax
call fcn.00408f60
add esp, 4
mov edi, eax
mov dword [esi + 0x40], 0x33ac3149
mov dword [esi + 0x44], 0x37a235a7
mov dword [esi + 0x48], 0x2bb62949
mov dword [esi + 0x4c], 0x2f5e2db0
mov dword [esi + 0x50], 0x23b62141
mov dword [esi + 0x54], 0x272625bc
mov dword [esi + 0xc8], 0
mov eax, dword [esi + 0xc8]
cmp eax, 0x17
ja 0x420988
nop
mov ecx, dword [esi + 0xc8]
mov eax, dword [esi + 0xc8]
movzx edx, byte [esi + eax + 0x40]
lea eax, [ecx - 0x3468f858]
and eax, edx
add eax, eax
add ecx, edx
add ecx, 0xcb9707a8
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0xf8], eax
mov eax, dword [esi + 0xf8]
add al, 0x68
mov ecx, dword [esi + 0xc8]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0xc8]
mov eax, dword [esi + 0xc8]
cmp eax, 0x18
jb 0x420930
push ebx
push edi
push 0
lea eax, [esi + 0x40]
push eax
push dword [esi]
call fcn.00437b80
add esp, 0x14
shr eax, 0x1f
mov ebx, edi
jmp dword [eax*4 + 0x43e20c]
xor ebx, ebx
jmp dword [0x43e214]
push edi
call fcn.00408f70
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov dword [esi + 4], eax
mov dword [esi + 0x40], 0x28292e2f
mov dword [esi + 0x44], 0
mov word [esi + 0x48], 0
mov dword [esi + 0xc8], 0
mov eax, dword [esi + 0xc8]
cmp eax, 9
ja 0x420a4d
nop
nop
mov ecx, dword [esi + 0xc8]
mov eax, dword [esi + 0xc8]
movzx eax, byte [esi + eax + 0x40]
add ecx, 0x13d638fa
mov edx, ecx
and edx, eax
mov edi, ecx
xor edi, eax
or ecx, eax
xor ecx, edi
lea eax, [edi + edx*2]
add ecx, edx
mov edx, eax
xor edx, ecx
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
mov dword [esi + 0xf8], ecx
mov eax, dword [esi + 0xf8]
add al, 0x2a
mov ecx, dword [esi + 0xc8]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0xc8]
mov eax, dword [esi + 0xc8]
cmp eax, 0xa
jb 0x4209f0
mov ecx, dword [0x441d6c]
test ecx, ecx
je case.default.0x420abc
mov edx, dword [esi + 0x40]
xor edi, edi
mov eax, dword [0x441d70]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0x11081610
je 0x420a94
inc edi
cmp ecx, edi
jne 0x420a70
jmp case.default.0x420abc
mov edi, 4
xor eax, eax
cmp edi, 4
setb al
jmp dword [eax*4 + 0x43e24c]
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
je case.default.0x420abc
push dword [esi + 4]
push 1
push dword [0x441d74]
push eax
call fcn.00434400
add esp, 0x10
xor eax, eax
test ebx, ebx
setne al
mov edi, 2
jmp dword [eax*4 + 0x43e21c]
lea eax, [esi + 0x40]
push eax
call fcn.00436650
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x43e224]
xor eax, eax
cmp dword [esi + 0x40], 1
sete al
jmp dword [eax*4 + 0x43e22c]
xor edi, edi
mov eax, 1
jmp dword [eax*4 + 0x43e234]
xor eax, eax
jmp dword [eax*4 + 0x43e234]
mov eax, dword [case.0x420abc.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor edi, edi
jmp eax
xor eax, eax
cmp edi, 4
setb al
jmp dword [eax*4 + 0x43e24c]
xor edx, edx
cmp edi, 4
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x43e254]
mov eax, dword [case.0x420abc.21]
nop
nop
jmp eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x43e274]
mov dword [esi + 0x40], 0x4b254d28
mov dword [esi + 0x44], 0x5724493b
mov dword [esi + 0x48], 0x533b553e
mov dword [esi + 0x4c], 0x5f3a513b
mov dword [esi + 0x50], 0x5b295d33
mov dword [esi + 0x54], 0x670c592a
mov dword [esi + 0x58], 0x6309650d
mov dword [esi + 0x5c], 0x6f146152
mov dword [esi + 0x60], 0x6b006d00
lea eax, [esi + 0x64]
mov word [esi + 0x64], 0x6968
mov dword [esi + 0x66], 0
mov dword [esi + 0x6a], 0
mov byte [esi + 0x6e], 0
mov dword [esi + 0xc8], 0
mov ecx, dword [esi + 0xc8]
cmp ecx, 0x2e
ja 0x420c21
nop
mov edx, dword [esi + 0xc8]
mov ecx, dword [esi + 0xc8]
movzx edi, byte [esi + ecx + 0x40]
add edx, 0xe73897ca
mov ecx, edx
and ecx, edi
xor edx, edi
lea edx, [edx + ecx*2]
add ecx, ecx
mov edi, edx
xor edi, ecx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
mov dword [esi + 0xf8], ecx
mov ecx, dword [esi + 0xf8]
mov edx, ecx
or edx, 0x79
and ecx, 0x79
add ecx, edx
inc cl
mov edx, dword [esi + 0xc8]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 0xc8]
mov ecx, dword [esi + 0xc8]
cmp ecx, 0x2f
jb 0x420bc0
lea edi, [esi + 0xc8]
lea edx, [esi + 0x40]
mov dword [esi + 0xb8], edx
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 0xec]
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 0x420c50
cmp eax, 0xffffffd9
jge 0x420c79
mov eax, 0xffffffff
jmp 0x420c7c
mov eax, dword [case.0x420abc.27]
nop
nop
nop
nop
jmp eax
xor eax, eax
jmp 0x421296
add eax, 0x26
push eax
call fcn.00408f60
add esp, 4
mov edi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x420cb1
lea edx, [ebx + 2]
mov eax, edi
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 0x420ca0
mov word [eax], 0
movzx ecx, word [esi + 0xc8]
test cx, cx
je 0x420ce1
lea edx, [esi + 0xca]
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 0x420cd0
mov word [eax], 0
jmp dword [0x43e28c]
push ebx
call fcn.00408f70
add esp, 4
lea eax, [esi + 0x24]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.00436890
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esi + 0x1c], edi
jmp dword [eax*4 + 0x43e294]
xor edi, edi
xor ebx, ebx
jmp dword [0x43e2d4]
push dword [esi + 0x1c]
call fcn.00408f70
add esp, 4
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x43e2dc]
xor eax, eax
test edi, edi
jne 0x421264
jmp 0x421296
lea eax, [esi + 0x30]
push 0
push eax
push dword [esi + 0x24]
call fcn.00436c20
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x43e29c]
mov edi, dword [esi + 0x30]
lea eax, [edi + 1]
push eax
call fcn.00408f60
add esp, 4
push 0
push edi
mov dword [esi + 0x38], eax
push eax
push dword [esi + 0x24]
call fcn.00436d20
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x43e2a4]
mov edi, dword [esi + 0x30]
mov ebx, dword [esi + 0x38]
mov byte [ebx + edi], 0
push 0x20
call fcn.00408f60
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 [esi + 0xb4], eax
mov ecx, eax
push edi
push ebx
call fcn.004232b0
movzx eax, al
xor ebx, ebx
xor edx, edx
jmp dword [eax*4 + 0x43e2ac]
mov dword [esi + 0x40], 0xf7e006b
mov dword [esi + 0x44], 0x700e7e0b
mov dword [esi + 0x48], 0xf7b674f
mov dword [esi + 0x4c], 0x7a556a04
mov dword [esi + 0x50], 0x14636e1a
mov dword [esi + 0x54], 0x62614e53
mov dword [esi + 0x58], 0x171e161f
mov dword [esi + 0x5c], 0xb517
mov byte [esi + 0x60], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x20
ja 0x420e8a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0x25ee52c3
add eax, 0x25ee52c3
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0xf8], edx
mov eax, dword [esi + 0xf8]
add al, 0xab
mov ecx, dword [esi]
mov byte [esi + ecx + 0x40], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x21
jb 0x420e50
mov ecx, dword [esi + 0xb4]
lea eax, [esi + 0x40]
push eax
call fcn.004234d0
xor ecx, ecx
test eax, eax
setne cl
xor edx, edx
jmp dword [ecx*4 + 0x43e2b4]
mov edi, edx
jmp dword [0x43e2c4]
mov ecx, dword [esi + 0xb4]
call fcn.00423640
push dword [esi + 0xb4]
call fcn.00408f70
add esp, 4
jmp dword [0x43e2cc]
jmp dword [0x43e2cc]
push dword [esi + 0x38]
call fcn.00408f70
add esp, 4
mov dword [esi + 0x14], edi
mov dword [esi + 0xc], ebx
mov eax, dword [esi + 0x24]
mov dword [esi + 0x40], 0x28292e2f
mov dword [esi + 0x44], 0
mov word [esi + 0x48], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 9
ja 0x420f5a
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [esi + edx + 0x40]
add ecx, 0x13d638fa
mov edi, ecx
and edi, edx
mov ebx, ecx
xor ebx, edx
or ecx, edx
xor ecx, ebx
lea edx, [ebx + edi*2]
add ecx, edi
mov edi, edx
xor edi, ecx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
mov dword [esi + 0xf8], ecx
mov ecx, dword [esi + 0xf8]
add cl, 0x2a
mov edx, dword [esi]
mov byte [esi + edx + 0x40], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0xa
jb 0x420f10
mov ecx, dword [0x441d6c]
test ecx, ecx
je 0x420f8c
mov edx, dword [esi + 0x40]
xor edi, edi
mov ebx, dword [0x441d70]
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x420f80
inc edi
cmp ecx, edi
jne 0x420f70
jmp 0x420f8c
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x421339
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 0x14]
jmp dword [0x43e2d4]
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x43e2dc]
mov dword [esi + 0xc], ebx
mov eax, ebx
mov dword [esi + 0x14], edi
sub eax, edi
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.00408f60
add esp, 4
mov dword [esi + 0x1c], eax
mov dword [esi + 0x40], 0x733e6d09
mov dword [esi + 0x44], 0x77d171c3
mov dword [esi + 0x48], 0x7bd675d5
mov dword [esi + 0x4c], 0x7fce7939
mov dword [esi + 0x50], 0x43067dcc
mov dword [esi + 0x54], 0x47f241e1
mov dword [esi + 0x58], 0x4b2f45e5
mov dword [esi + 0x5c], 0x4f194914
mov dword [esi + 0x60], 0x53f74df8
mov dword [esi + 0x64], 0x57fb51f1
mov dword [esi + 0x68], 0x5bf65508
mov dword [esi + 0x6c], 0x5ff959eb
mov dword [esi + 0x70], 0xa30e5dfd
mov dword [esi + 0x74], 0xa71ca1d2
mov dword [esi + 0x78], 0xab00a500
lea eax, [esi + 0x7c]
mov word [esi + 0x7c], 0xa9a8
mov dword [esi + 0x7e], 0
mov word [esi + 0x82], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x43
ja 0x4210c5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edi, byte [esi + edx + 0x40]
lea edx, [ecx - 0x60810e32]
add ecx, 0xce
or ecx, edx
and ecx, edi
or edx, edi
sub edx, ecx
mov dword [esi + 0xf8], edx
mov ecx, dword [esi + 0xf8]
mov edx, ecx
xor edx, 0x5d
and ecx, 0x5d
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi]
mov byte [esi + edx + 0x40], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x44
jb 0x421080
lea ebx, [esi + 0xf8]
mov ecx, 0xf
mov edi, ebx
mov edx, dword [esi + 0xb8]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 0x134]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esi + 0x30]
push eax
push 0
push 0
push 0x1e
push ebx
push 0
call dword [0x441d68]
mov ebx, dword [esi + 0x30]
test ebx, ebx
jns 0x42110f
mov eax, 0xffffffff
jmp 0x421112
lea eax, [ebx + ebx]
push eax
call fcn.00408f60
add esp, 4
mov edi, eax
mov eax, dword [esi + 0xa4]
mov dword [eax], edi
lea eax, [esi + 0x30]
push eax
push ebx
push edi
push 0x1e
lea eax, [esi + 0xf8]
push eax
push 0
call dword [0x441d68]
push 0x60
push 3
push 0x120089
mov ebx, dword [esi + 0xa0]
push ebx
push edi
call fcn.00436890
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43e2e4]
xor ebx, ebx
mov eax, dword [esi + 0xa4]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x18], edx
jmp dword [ecx*4 + 0x43e3f4]
push eax
call fcn.00408f70
add esp, 4
mov eax, ebx
and al, 1
movzx ecx, al
mov edi, dword [esi + 0xf4]
mov eax, ebx
mov ebx, dword [esi + 0xc]
jmp dword [ecx*4 + 0x43e3fc]
mov eax, dword [esi + 0x18]
mov byte [eax], 0
sub eax, dword [esi + 0x1c]
mov dword [esi + 0x18], eax
mov dword [edi], 0x170809f5
mov dword [edi + 4], 0xb1f1811
mov dword [edi + 8], 0x362e3015
mov dword [edi + 0xc], 0x2030d0f3
mov dword [edi + 0x10], 0xdff92625
mov dword [edi + 0x14], 0x212b203b
mov dword [edi + 0x18], 0x2b24ff3b
mov word [edi + 0x1c], 0x9526
mov dword [edi + 0x1e], 0
mov word [edi + 0x22], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x23
ja 0x421235
nop
nop
nop
mov ecx, dword [esi]
mov eax, dword [esi]
movzx eax, byte [edi + eax]
mov edx, 0x8555f968
sub edx, ecx
add ecx, 0x97
and ecx, eax
or edx, eax
not edx
add edx, eax
sub edx, ecx
mov dword [esi + 0x40], edx
mov eax, dword [esi + 0x40]
add al, 0xdf
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x24
jb 0x421200
mov ecx, dword [ebp + 8]
push dword [esi + 0x18]
push dword [esi + 0x1c]
push edi
call fcn.00409950
mov edi, dword [esi + 0x14]
jmp dword [0x43e404]
mov dword [esi + 0x10], eax
push dword [esi + 0x1c]
call fcn.00408f70
mov eax, dword [esi + 0x10]
add esp, 4
and al, 1
test edi, edi
je 0x421296
cmp edi, ebx
je 0x421296
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edi
jmp 0x421274
cmp edi, ebx
je 0x421288
mov eax, dword [edi]
add edi, 8
test eax, eax
je 0x421270
push eax
call fcn.00408f70
add esp, 4
jmp 0x421270
push dword [esi + 0x14]
call fcn.00408f70
add esp, 4
mov eax, dword [esi + 0x10]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0
mov edi, dword [esi + 0x34]
push edi
push dword [ebx]
call fcn.00436c20
add esp, 0xc
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43e2ec]
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x18], eax
jmp 0x421e18
mov ebx, dword [edi]
lea eax, [ebx + 1]
push eax
call fcn.00408f60
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xc0]
mov dword [eax], ecx
push 0
push ebx
mov dword [esi + 4], ecx
push ecx
mov ebx, dword [esi + 0xa0]
push dword [ebx]
call fcn.00436d20
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43e2f4]
mov dword [esi + 0x10], 0
xor eax, eax
mov edx, dword [esi + 4]
test edx, edx
sete al
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0xc]
jmp dword [eax*4 + 0x43e3ec]
mov dword [esi + 0xc], ecx
push edx
call fcn.00408f70
add esp, 4
jmp 0x421e18
push eax
push 1
push dword [0x441d74]
push ecx
call fcn.00434400
add esp, 0x10
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 0x14]
jmp dword [0x43e2d4]
mov ebx, dword [edi]
mov eax, dword [esi + 4]
mov byte [eax + ebx], 0
push 0x20
call fcn.00408f60
add esp, 4
mov edi, 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 eax, dword [esi + 0xac]
mov dword [eax], edi
mov ecx, edi
push ebx
push dword [esi + 4]
call fcn.004232b0
movzx eax, al
xor edx, edx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x18], ecx
jmp dword [eax*4 + 0x43e2fc]
mov ebx, dword [esi + 8]
jmp dword [0x43e308]
jmp 0x421c32
add eax, 8
xor ebx, ebx
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
xor edx, edx
xor edi, edi
mov dword [esi + 0x20], 0
jmp dword [eax*4 + 0x43e2bc]
mov eax, 0xffffffff
mov ebx, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
lea ecx, [eax + eax]
not ecx
add ecx, eax
mov eax, dword [esi + 0x2c]
mov dword [edx + eax*8 + 4], ecx
add ebx, 8
mov ecx, dword [esi + 0x9c]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
mov edi, edx
jmp dword [eax*4 + 0x43e2bc]
mov eax, dword [ecx]
mov dword [esi + 0x9c], ecx
mov dword [esi + 0x28], eax
mov edx, ebx
sub edx, edi
sar edx, 3
cmp ebx, dword [esi + 0x20]
mov dword [esi + 0x2c], edx
je 0x421441
mov dword [esi + 0xc], ebx
jmp 0x4214d3
mov eax, edi
not eax
and eax, ebx
mov ecx, ebx
not ecx
and ecx, edi
sub eax, ecx
sar eax, 3
mov ebx, eax
shr ebx, 1
add ebx, eax
lea eax, [edx + 1]
cmp ebx, eax
ja 0x421461
mov ebx, eax
lea eax, [ebx*8]
push eax
call fcn.00408f60
add esp, 4
mov dword [esi + 0x14], eax
test edi, edi
je 0x4214be
mov eax, dword [esi + 0x20]
cmp edi, eax
je 0x4214b5
xor eax, eax
mov edx, dword [esi + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [edi + eax]
mov dword [edx + eax], ecx
mov ecx, dword [edi + eax + 4]
mov dword [edx + eax + 4], ecx
mov dword [edi + eax], 0
lea ecx, [edi + eax]
add ecx, 8
add eax, 8
cmp ecx, dword [esi + 0x20]
jne 0x421490
mov eax, edi
push eax
call fcn.00408f70
add esp, 4
mov edi, dword [esi + 0x14]
mov edx, dword [esi + 0x2c]
lea eax, [edi + edx*8]
mov dword [esi + 0xc], eax
lea eax, [edi + ebx*8]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x28]
mov dword [edi + edx*8], 0
mov dword [edi + edx*8 + 4], 0
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, ebx
inc ebx
cmp byte [eax + ecx], 0
jne 0x4214f0
mov dword [esi + 4], ecx
push ebx
call fcn.00408f60
add esp, 4
mov edx, eax
mov dword [esi + 0x14], edi
mov eax, dword [esi + 0x2c]
mov dword [edi + eax*8], edx
mov ecx, ebx
shr ecx, 2
mov eax, dword [esi + 0x28]
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
add edx, eax
add eax, dword [esi + 0x28]
mov ecx, ebx
and ecx, 3
mov dword [esi + 0x18], ecx
shr ecx, 1
mov edi, eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x3c], edx
mov edi, edx
mov edx, dword [esi + 0x10]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
test bl, 1
je 0x421562
mov ecx, dword [esi + 0x18]
xor ecx, 1
and ecx, ebx
movzx eax, byte [eax + ecx]
mov ecx, ebx
and ecx, 2
mov edx, dword [esi + 0x3c]
mov byte [edx + ecx], al
cmp ebx, 1
je 0x4213e8
lea ecx, [ebx - 1]
cmp ebx, 2
jne 0x42157a
mov eax, 0xffffffff
jmp 0x4215e3
mov dword [esi + 0x10], ecx
mov edx, dword [esi + 4]
and edx, 0xfffffffe
mov eax, 0xffffffff
mov ecx, dword [esi + 0x28]
nop
nop
nop
nop
nop
mov dword [esi + 4], edx
mov edx, eax
shr edx, 8
movzx edi, byte [ecx]
mov ebx, eax
and ebx, edi
add eax, edi
not eax
lea eax, [eax + ebx*2]
not eax
movzx eax, al
xor edx, dword [eax*4 + 0x4397a0]
mov eax, edx
movzx edi, byte [ecx + 1]
mov ebx, edx
and ebx, edi
add edx, edi
not edx
lea edx, [edx + ebx*2]
shr eax, 8
not edx
movzx edx, dl
xor eax, dword [edx*4 + 0x4397a0]
mov edx, dword [esi + 4]
add ecx, 2
add edx, 0xfffffffe
jne 0x421590
mov dword [esi + 0x28], ecx
mov ecx, dword [esi + 0x10]
test cl, 1
mov ebx, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
je 0x4213f3
mov ecx, eax
shr ecx, 8
mov edx, dword [esi + 0x28]
movzx edx, byte [edx]
mov edi, eax
and edi, edx
add eax, edx
not eax
lea eax, [eax + edi*2]
mov edx, dword [esi + 0x14]
not eax
movzx eax, al
xor ecx, dword [eax*4 + 0x4397a0]
mov eax, ecx
jmp 0x4213f3
mov dword [esi + 8], ecx
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x42166a
sub ecx, dword [esi + 8]
inc ecx
shr ecx, 1
mov dword [esi + 0x9c], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408f60
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0xf0]
mov dword [eax], ebx
mov eax, dword [esi + 8]
movsx ecx, byte [eax]
xor edx, edx
test ecx, ecx
setne dl
mov dword [esi + 0x34], ebx
jmp dword [edx*4 + 0x43e354]
inc eax
mov ebx, dword [esi + 4]
mov byte [ebx], cl
inc ebx
mov dword [esi + 8], eax
movsx ecx, byte [eax]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x43e354]
mov dword [esi + 4], ebx
mov edx, ecx
or edx, 0x20
lea ebx, [edx - 0x61]
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0x4216b0
mov cl, 0xff
cmp ebx, 6
jae case.default.0x4216c8
add dl, 0xa9
mov ecx, edx
mov eax, dword [esi + 8]
movsx edx, byte [eax + 1]
xor ebx, ebx
test edx, edx
setne bl
jmp dword [ebx*4 + 0x43e35c]
mov ebx, edx
or ebx, 0x20
lea eax, [ebx - 0x61]
add edx, 0xffffffd0
cmp edx, 0xa
jb 0x4216e1
mov dl, 0xff
shl cl, 4
add dword [esi + 8], 2
cmp eax, 6
jae case.default.0x421707
add bl, 0xa9
mov edx, ebx
or cl, dl
mov ebx, dword [esi + 4]
mov byte [ebx], cl
inc ebx
mov eax, dword [esi + 8]
movsx ecx, byte [eax]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x43e354]
mov byte [ebx], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edi
movzx eax, byte [edi - 1]
movsx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x421720
cmp ecx, 0x20
je 0x421720
movzx ecx, al
cmp ecx, 0x2b
je 0x421746
cmp ecx, 0x2d
jne 0x421a98
cmp al, 0x2b
sete byte [esi + 0x38]
movzx eax, byte [edi]
cmp al, 0x30
jne 0x421763
movzx eax, byte [edi + 1]
and al, 0xdf
xor ecx, ecx
cmp al, 0x58
sete cl
lea edi, [edi + ecx*2]
mov dword [esi + 4], edi
xor edi, edi
xor ecx, ecx
xor eax, eax
jmp 0x421797
mov dword [esi + 0x20], 0
xor edx, edx
mov dword [esi + 8], 0xffffffff
mov ebx, 0xffffffff
mov dword [esi + 0x28], 0x22
mov ecx, dword [esi + 0x20]
add ecx, dword [esi + 8]
adc edx, ebx
mov edi, dword [esi + 0x28]
mov eax, edx
mov edx, eax
mov dword [esi + 0x28], edi
mov edi, dword [esi + 4]
movsx eax, byte [edi]
lea ebx, [eax - 0x30]
cmp ebx, 0xa
mov dword [esi + 8], ecx
jb 0x4217d1
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x19
ja 0x421885
or al, 0x20
cmp al, 0x66
jg 0x421885
movsx ebx, al
add ebx, 0xffffffa9
mov ecx, dword [esi + 8]
mov dword [esi + 0x20], ebx
inc edi
mov dword [esi + 4], edi
mov ebx, edx
mov edx, ecx
and edx, ebx
mov ecx, 0xffffffff
mov edi, 0x22
mov eax, 0xffffffff
cmp edx, 0xffffffff
je 0x421797
test ebx, 0xf0000000
je 0x421810
cmp dword [esi + 0x20], 0
jne 0x421797
jmp 0x42176e
mov dword [esi + 0x2c], ebx
mov ebx, dword [esi + 8]
mov edx, ebx
and edx, 0xffffffef
mov edi, ebx
and edi, 0x10
mov ecx, edi
xor ecx, 0x10
mov eax, ecx
imul eax, dword [esi + 0x2c]
mov dword [esi + 0x3c], eax
mov eax, ecx
mul edx
mov dword [esi + 0xb8], eax
add edx, dword [esi + 0x3c]
mov dword [esi + 0x3c], edx
or ebx, 0x10
mov eax, ebx
mul edi
mov ecx, eax
mov ebx, edx
mov eax, dword [esi + 0x2c]
imul eax, edi
or ebx, eax
add ecx, dword [esi + 0xb8]
adc ebx, dword [esi + 0x3c]
mov eax, dword [esi + 0x20]
mov edx, eax
sar edx, 0x1f
mov dword [esi + 8], ecx
add eax, ecx
mov eax, edx
adc eax, ebx
mov ecx, 0xffffffff
mov eax, 0xffffffff
mov edi, 0x22
jb 0x421797
jmp 0x42178a
xor edi, edi
mov eax, dword [esi + 8]
neg eax
mov ecx, 0
sbb ecx, edx
cmp byte [esi + 0x38], 0
jne 0x42189e
mov dword [esi + 8], eax
mov edx, ecx
mov dword [esi + 0x2c], edx
mov eax, dword [case.0x421707.6]
mov ecx, dword [case.0x420abc.94]
mov edx, dword [esi + 0x14]
mov dword [esi + 4], edx
mov ebx, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor edx, edx
cmp dword [esi + 4], ebx
setne dl
jmp dword [edx*4 + 0x43e374]
cmp dword [esi + 0x28], 0x22
setne byte [esi + 0x20]
mov edx, dword [esi + 4]
mov ebx, dword [edx + 4]
mov edx, ebx
shr edx, 0x1c
xor edx, dword [esi + 0x2c]
shl ebx, 4
or ebx, 1
xor ebx, dword [esi + 8]
or ebx, edx
sete dl
and dl, byte [esi + 0x20]
movzx edx, dl
jmp dword [edx*4 + 0x43e37c]
mov edx, 1
mov ebx, dword [esi + 0xc]
jmp dword [edx*4 + 0x43e384]
mov edx, dword [esi + 4]
mov edi, dword [edx]
xor edx, edx
mov ebx, dword [esi + 0xc]
jmp dword [edx*4 + 0x43e384]
jmp ecx
add dword [esi + 4], 8
jmp case.0x421707.4
mov eax, dword [case.0x420abc.98]
nop
nop
nop
jmp eax
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x43e3ac]
xor eax, eax
mov ecx, dword [esi + 0x34]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x43e3cc]
push ecx
call fcn.00408f70
add esp, 4
mov edx, dword [esi + 0xbc]
jmp dword [0x43e3d4]
mov ebx, dword [esi + 0xc4]
jmp dword [0x43e3b8]
mov eax, dword [esi + 0x9c]
mov dword [ebx], eax
mov eax, dword [esi + 0x34]
mov dword [ebx + 4], eax
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne 0x4219a0
mov ecx, dword [esi + 0xb0]
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov ebx, dword [esi + 0xa8]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x932a8d34
push dword [0x441d78]
call fcn.00435d20
add esp, 8
push ebx
push 1
push 0
push 0
push dword [esi + 0xb0]
push 0
mov ebx, dword [esi + 0xc4]
push ebx
call eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x9c]
mov dword [ebx], eax
mov eax, dword [esi + 0x34]
mov dword [ebx + 4], eax
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne 0x421a20
mov ecx, dword [esi + 0xb0]
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov ebx, dword [esi + 0xa8]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x932a8d34
push dword [0x441d78]
call fcn.00435d20
add esp, 8
push ebx
push 1
push 0
push 0
push dword [esi + 0xb0]
push 0
mov ebx, dword [esi + 0xc4]
push ebx
call eax
jmp dword [0x43e3c0]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e3c4]
xor eax, eax
mov ecx, dword [esi + 0x34]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x43e3cc]
dec edi
mov byte [esi + 0x38], 1
cmp al, 0x30
je 0x421753
jmp 0x421763
movzx eax, byte [edi]
test al, al
je 0x421acd
inc edi
mov ecx, dword [esi + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x421ac0
jmp 0x421ad0
mov ecx, dword [esi + 0x18]
mov word [ecx], 0x203a
mov eax, ecx
add eax, 2
mov edi, dword [esi + 0xa8]
mov edx, dword [edi]
test edx, edx
je 0x421b13
mov ecx, dword [edi + 4]
mov edi, edx
and edi, 3
je 0x421b17
mov dword [esi + 8], edx
xor ebx, ebx
movzx edx, byte [ecx]
cmp dl, 1
mov byte [eax + ebx], dl
sbb ecx, 0xffffffff
inc ebx
cmp edi, ebx
jne 0x421af5
add eax, ebx
mov edi, dword [esi + 8]
mov edx, edi
sub edx, ebx
mov ebx, eax
jmp 0x421b19
mov ebx, eax
jmp 0x421b5d
mov edi, edx
cmp edi, 4
mov edi, dword [esi + 0xa8]
jb 0x421b5d
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
mov byte [eax + 3], bl
lea ebx, [eax + 4]
mov eax, ebx
add edx, 0xfffffffc
jne 0x421b24
mov byte [ebx], 0xa
inc ebx
mov dword [esi + 0x18], ebx
push 0x2e0ec9bb
push dword [0x441d60]
call fcn.00435d20
add esp, 8
push dword [edi + 4]
call eax
mov eax, dword [esi + 0xf0]
mov ecx, dword [eax]
mov al, 1
mov dword [esi + 0x10], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x43e3cc]
mov edx, dword [esi + 0xbc]
jmp dword [0x43e3d4]
mov edi, dword [eax]
cmp dword [eax + 0x18], 3
mov ecx, 0
jne case.default.0x421bc7
mov ecx, dword [eax + 0x10]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x43e334]
mov eax, dword [case.0x420abc.74]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x43e34c]
jmp dword [0x43e3d4]
mov eax, dword [edx]
mov eax, dword [eax + 4]
mov dword [edx], eax
nop
nop
nop
mov eax, dword [edx]
mov eax, dword [eax + 4]
mov dword [edx], eax
jmp dword [0x43e3e0]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e31c]
mov eax, dword [case.0x420ea2.18]
mov edx, dword [esi + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [ebx], 0xb7a0be93
mov dword [ebx + 4], 0xbaa8a8b3
mov dword [ebx + 8], 0xa7b38f67
mov dword [ebx + 0xc], 0x806dbcaa
mov dword [ebx + 0x10], 0xaebbb0a0
mov dword [ebx + 0x14], 0x9595966b
mov dword [ebx + 0x18], 0x9f8d8896
mov dword [ebx + 0x1c], 0x878180af
mov word [ebx + 0x20], 0x6d81
mov dword [ebx + 0x22], 0
mov dword [ebx + 0x26], 0
mov dword [ebx + 0x2a], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x2d
ja 0x421cd2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [ebx + ecx]
lea ecx, [eax + edx]
add eax, 0x8a
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x8d83338a
mov dword [esi + 0x40], ecx
mov eax, dword [esi + 0x40]
add al, 0x3a
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x2e
jb 0x421ca0
mov ecx, edi
push ebx
call fcn.004234d0
jmp dword [0x43e30c]
mov eax, dword [esi + 0xac]
mov ecx, dword [eax]
mov dword [ebx], 0xb7a0be93
mov dword [ebx + 4], 0xbaa8a8b3
mov dword [ebx + 8], 0xa7b38f67
mov dword [ebx + 0xc], 0x806dbcaa
mov dword [ebx + 0x10], 0xaebbb0a0
mov dword [ebx + 0x14], 0x9595966b
mov dword [ebx + 0x18], 0x9f8d8896
mov dword [ebx + 0x1c], 0x878180af
mov word [ebx + 0x20], 0x6d81
mov dword [ebx + 0x22], 0
mov dword [ebx + 0x26], 0
mov dword [ebx + 0x2a], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x2d
ja 0x421d85
mov ebx, dword [esi + 8]
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov edx, dword [esi]
mov edi, dword [esi + 8]
movzx edi, byte [edi + edx]
lea edx, [eax + edi]
add eax, 0x8a
and eax, edi
add eax, eax
sub edx, eax
add edx, 0x8d83338a
mov dword [esi + 0x40], edx
mov eax, dword [esi + 0x40]
add al, 0x3a
mov edx, dword [esi]
mov byte [ebx + edx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x2e
jb 0x421d50
push ebx
call fcn.004234d0
mov eax, dword [esi + 0xac]
mov edi, dword [eax]
jmp 0x421c32
xor ecx, ecx
test eax, eax
setne cl
xor edx, edx
mov edi, dword [esi + 0x1c]
mov dword [esi + 0x18], edi
jmp dword [ecx*4 + 0x43e314]
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0xac]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x43e3e4]
mov ecx, edi
call fcn.00423640
push edi
call fcn.00408f70
add esp, 4
mov eax, dword [esi + 0xc0]
mov edx, dword [eax]
xor eax, eax
test edx, edx
sete al
mov ebx, dword [esi + 0xa0]
mov ecx, dword [esi + 0xc]
jmp dword [eax*4 + 0x43e3ec]
mov eax, dword [esi + 0xc0]
mov edx, dword [eax]
xor eax, eax
test edx, edx
sete al
mov ebx, dword [esi + 0xa0]
mov ecx, dword [esi + 0xc]
jmp dword [eax*4 + 0x43e3ec]
mov dword [esi + 0xc], ecx
mov eax, dword [ebx]
mov dword [esi + 0x40], 0x28292e2f
mov dword [esi + 0x44], 0
mov word [esi + 0x48], 0
mov dword [esi + 0x24], 0
mov ecx, dword [esi + 0x24]
cmp ecx, 9
ja 0x421e87
nop
nop
nop
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x24]
movzx edx, byte [esi + edx + 0x40]
add ecx, 0x13d638fa
mov edi, ecx
and edi, edx
mov ebx, ecx
xor ebx, edx
or ecx, edx
xor ecx, ebx
lea edx, [ebx + edi*2]
add ecx, edi
mov edi, edx
xor edi, ecx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
mov dword [esi], ecx
mov ecx, dword [esi]
add cl, 0x2a
mov edx, dword [esi + 0x24]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 0x24]
mov ecx, dword [esi + 0x24]
cmp ecx, 0xa
jb 0x421e40
mov ecx, dword [0x441d6c]
test ecx, ecx
je case.default.0x421f17
mov edx, dword [esi + 0x40]
xor edi, edi
mov ebx, dword [0x441d70]
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x421eb0
inc edi
cmp ecx, edi
jne 0x421ea0
jmp case.default.0x421f17
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x421ef3
mov eax, dword [esi + 0xa4]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov ebx, dword [esi + 0x10]
jmp dword [ecx*4 + 0x43e3f4]
mov eax, ebx
and al, 1
movzx ecx, al
mov edi, dword [esi + 0xf4]
mov eax, ebx
mov ebx, dword [esi + 0xc]
jmp dword [ecx*4 + 0x43e3fc]
mov edi, dword [esi + 0x14]
jmp dword [0x43e404]
push eax
push 1
push dword [0x441d74]
push ecx
call fcn.00434400
add esp, 0x10
mov eax, dword [esi + 0xa4]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov ebx, dword [esi + 0x10]
jmp dword [ecx*4 + 0x43e3f4]
mov eax, dword [eax + 8]
mov edx, dword [esi + 0xbc]
mov dword [edx], eax
mov dword [esi + 0x10], 0
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x1c]
mov dword [esi + 0x18], edi
jmp dword [ecx*4 + 0x43e31c]
mov ecx, dword [esp + 0xf4]
inc ecx
mov eax, dword [case.0x421f17.8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp ecx, 3
setne al
jmp dword [eax*4 + 0x43e41c]
mov dword [esp + 0xf4], ecx
mov ecx, dword [esp + ecx*4 + 0x114]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4223b0
mov dword [esp + 0x60], ecx
mov dword [esp + 0xb0], eax
mov ebx, eax
sar ebx, 1
mov dword [esp + 0x20], 0xeb88d5ba
mov dword [esp + 0x24], 0xef8de99b
mov dword [esp + 0x28], 0xe390ed89
mov dword [esp + 0x2c], 0xe7b5e1c2
mov dword [esp + 0x30], 0xfb83e592
mov dword [esp + 0x34], 0xff83f98e
mov word [esp + 0x38], 0xfdfe
mov byte [esi + 0xa], 0
mov dword [esi + 6], 0
mov dword [esi + 2], 0
mov dword [esp + 0x64], 0
mov eax, dword [esp + 0x64]
cmp eax, 0x22
ja 0x422489
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x64]
movzx esi, byte [esp + eax + 0x20]
lea eax, [edx + 0x64f69add]
lea ecx, [edx + esi]
add ecx, 0x64f69add
add edx, 0xdd
and edx, esi
and eax, esi
add eax, edx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xf5
mov ecx, dword [esp + 0x64]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0x64]
mov eax, dword [esp + 0x64]
cmp eax, 0x23
jb 0x422430
lea edi, [esp + 0xf8]
lea eax, [esp + 0x20]
mov ecx, 6
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea esi, [esp + 0x38]
mov eax, esi
lea edi, [esp + 0x110]
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]
lea edx, [ebx + eax]
add edx, 0xd
lea eax, [ecx + ecx]
add eax, 0x1a
test edx, edx
jns 0x4224d3
mov eax, 0xffffffff
push eax
call fcn.00408f60
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x7c]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x422511
mov edx, dword [esp + 0xac]
mov eax, edi
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 0x422500
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esp + 0x60]
movzx ecx, word [edx]
test cx, cx
je 0x422541
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 0x422530
mov word [eax], 0
movzx ecx, word [esp + 0xf8]
test cx, cx
je 0x422571
lea edx, [esp + 0xfa]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422560
mov word [eax], 0
lea eax, [esp + 0x88]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.00436890
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp + 0xf0], ebx
jmp dword [eax*4 + 0x43e424]
xor ebx, ebx
jmp dword [0x43e4b4]
push edi
call fcn.00408f70
add esp, 4
movzx eax, bl
jmp dword [eax*4 + 0x43e4bc]
mov dword [esp + 0x20], 0xf33ecd30
mov dword [esp + 0x24], 0xf711f163
mov dword [esp + 0x28], 0xfb16f515
mov dword [esp + 0x2c], 0xff09f9d8
mov dword [esp + 0x30], 0xe371fd68
mov dword [esp + 0x34], 0xe707e176
mov dword [esp + 0x38], 0xeb0fe50f
mov dword [esp + 0x3c], 0xef02e914
mov dword [esp + 0x40], 0x9308ed09
mov dword [esp + 0x44], 0x977a9175
mov dword [esp + 0x48], 0x9b7c9570
mov word [esp + 0x4c], 0x9998
mov dword [esi + 0x19], 0
mov dword [esi + 0x16], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x34
ja 0x42268a
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x20]
lea edx, [eax + ecx]
add edx, 0x76f75f1e
add eax, 0x76f75f1e
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x64]
add al, 0x2e
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x35
jb 0x422640
lea edi, [esp + 0xb8]
lea eax, [esp + 0x20]
mov ecx, 0xb
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x4c]
lea edi, [esp + 0xe4]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0xf0]
lea ecx, [edx + eax]
add edx, eax
add edx, 0x17
lea eax, [ecx + ecx]
add eax, 0x2e
test edx, edx
jns 0x4226d8
mov eax, 0xffffffff
push eax
call fcn.00408f60
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x7c]
movzx ecx, word [eax]
mov eax, ebx
test cx, cx
je 0x422711
mov edx, dword [esp + 0xac]
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 0x422700
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esp + 0x60]
movzx ecx, word [edx]
test cx, cx
je 0x422741
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 0x422730
mov word [eax], 0
movzx ecx, word [esp + 0xb8]
test cx, cx
je 0x422771
lea edx, [esp + 0xba]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422760
mov word [eax], 0
mov dword [esp + 0x20], 0xbbe0d7f
mov dword [esp + 0x24], 0x17ac09a5
mov dword [esp + 0x28], 0x13a615b9
mov dword [esp + 0x2c], 0x1fb011bc
mov word [esp + 0x30], 0x1d1c
mov byte [esi + 2], 0
mov dword [esi - 2], 0
mov dword [esi - 6], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x1a
ja 0x42280b
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x20]
lea edx, [eax + ecx]
add edx, 0x12bec0aa
add eax, 0x12bec0aa
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
mov ecx, eax
xor ecx, 0x59
and eax, 0x59
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x1b
jb 0x4227c0
lea edi, [esp + 0x64]
lea eax, [esp + 0x20]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x30]
lea edi, [esp + 0x74]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [esp + 0xb0]
lea eax, [ecx + 0x12]
cmp ecx, 0xffffffed
jge 0x422842
mov eax, 0xffffffff
push eax
call fcn.00408f60
add esp, 4
mov edi, eax
mov edx, dword [esp + 0x60]
movzx ecx, word [edx]
test cx, cx
je 0x422871
add edx, 2
mov eax, edi
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422860
mov word [eax], 0
movzx ecx, word [esp + 0x64]
test cx, cx
je 0x4228a1
lea edx, [esp + 0x66]
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 0x422890
mov word [eax], 0
mov dword [esp + 0x20], 0xc3c2c12a
mov word [esi - 0xc], 0
mov dword [esi - 0x10], 0
mov dword [esi - 0x14], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xd
ja 0x42292a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + ecx + 0x20]
lea ecx, [eax + edx]
add ecx, 0x138e64a0
add eax, 0xa0
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 + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0xa0
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xe
jb 0x4228e0
push 0
push 0
push 0xc00000
lea eax, [esp + 0x2c]
push eax
push ebx
push edi
push dword [ebp + 8]
call fcn.00419e40
add esp, 0x1c
mov ecx, dword [esp + 0x84]
and cl, 1
or cl, al
mov dword [esp + 0x84], ecx
jmp dword [0x43e4c4]
push edi
call fcn.00408f70
add esp, 4
mov eax, dword [case.0x421f17.57]
nop
nop
nop
nop
jmp eax
jmp dword [0x43e4dc]
jmp dword [0x43e4e8]
lea eax, [esp + 0xb4]
push 0
push eax
push dword [esp + 0x90]
call fcn.00436c20
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 0xc], 0
jmp dword [eax*4 + 0x43e42c]
mov esi, dword [esp + 0xb4]
lea eax, [esi + 1]
push eax
call fcn.00408f60
add esp, 4
push 0
push esi
mov esi, eax
push eax
push dword [esp + 0x94]
call fcn.00436d20
add esp, 0x10
not eax
shr eax, 0x1f
xor edx, edx
mov dword [esp + 0xec], esi
jmp dword [eax*4 + 0x43e434]
mov eax, dword [esp + 0xb4]
mov byte [esi + eax], 0
push esi
call fcn.00401fe0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
xor edx, edx
jmp dword [ecx*4 + 0x43e43c]
mov dword [esp + 0xc], edx
lea esi, [esp + 0x38]
jmp dword [0x43e4ac]
push dword [esp + 0xec]
call fcn.00408f70
add esp, 4
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0x88]
mov dword [esp + 8], ecx
mov dword [esp + 0x20], 0x28292e2f
mov word [esi - 0x10], 0
mov dword [esi - 0x14], 0
mov dword [esp + 0x64], 0
mov ecx, dword [esp + 0x64]
cmp ecx, 9
ja 0x422ab6
nop
nop
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x64]
movzx edx, byte [esp + edx + 0x20]
add ecx, 0x13d638fa
mov esi, ecx
and esi, edx
mov edi, ecx
xor edi, edx
lea ebx, [edi + esi*2]
or ecx, edx
xor ecx, edi
add ecx, esi
mov edx, ebx
xor edx, ecx
not ecx
and ecx, ebx
add ecx, ecx
sub ecx, edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0x2a
mov edx, dword [esp + 0x64]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 0x64]
mov ecx, dword [esp + 0x64]
cmp ecx, 0xa
jb 0x422a60
mov ecx, dword [0x441d6c]
test ecx, ecx
je 0x422ae8
mov edx, dword [esp + 0x20]
xor esi, esi
mov edi, dword [0x441d70]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x422ae0
inc esi
cmp ecx, esi
jne 0x422ad0
jmp 0x422ae8
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x422b09
lea esi, [esp + 0x38]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
jmp dword [0x43e4b4]
movzx eax, bl
jmp dword [eax*4 + 0x43e4bc]
jmp case.0x421f17.59
push dword [esp + 8]
push 1
push dword [0x441d74]
push ecx
call fcn.00434400
add esp, 0x10
lea esi, [esp + 0x38]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
jmp dword [0x43e4b4]
mov dword [esp + 0x80], eax
jmp dword [0x43e448]
jmp dword [0x43e4a0]
push ebx
call fcn.00408f70
add esp, 4
nop
nop
nop
nop
push ebx
call fcn.00408f70
add esp, 4
jmp dword [0x43e4a4]
push 0x2e0ec9bb
push dword [0x441d60]
call fcn.00435d20
add esp, 8
push dword [esp + 0x14]
call eax
nop
nop
nop
nop
nop
nop
nop
nop
push 0x2e0ec9bb
push dword [0x441d60]
call fcn.00435d20
add esp, 8
push dword [esp + 0x14]
call eax
jmp dword [0x43e470]
jmp dword [0x43e48c]
mov ebx, dword [esp + 0x1c]
jmp dword [0x43e494]
push dword [esp + 0x80]
call fcn.00402b90
add esp, 4
jmp dword [0x43e4ac]
mov edi, dword [esp + 0x18]
jmp dword [0x43e468]
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0xc], 0
lea esi, [esp + 0x38]
jmp dword [ecx*4 + 0x43e454]
mov eax, dword [case.0x421f17.35]
nop
nop
jmp eax
mov dword [esp + 0x20], 0xfb1cf917
mov dword [esp + 0x24], 0xff22fd6a
mov dword [esp + 0x28], 0xf378f16a
mov dword [esp + 0x2c], 0xf7f4f566
lea eax, [esp + 0x30]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp + 0x5c], 0
mov eax, dword [esp + 0x5c]
cmp eax, 0x16
ja 0x422c7f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
movzx ecx, byte [esp + ecx + 0x20]
lea edx, [eax + 0x9f]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x66f7da9f
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xa7
mov ecx, dword [esp + 0x5c]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
cmp eax, 0x17
jb 0x422c40
lea edi, [esp + 0xb8]
lea eax, [esp + 0x20]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x30]
xor ecx, ecx
lea edi, [esp + 0xc8]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [esp + 0xb0]
lea eax, [ecx + 0x10]
cmp ecx, 0xffffffef
jge 0x422cb9
mov eax, 0xffffffff
push eax
call fcn.00408f60
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x60]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x422cf1
mov eax, dword [esp + 0x60]
lea edx, [eax + 2]
mov eax, edi
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422ce0
mov word [eax], 0
movzx ecx, word [esp + 0xb8]
test cx, cx
je 0x422d21
lea edx, [esp + 0xba]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422d10
mov word [eax], 0
mov ecx, dword [ebp + 8]
push dword [esp + 0x10]
push dword [esp + 0x18]
push edi
call fcn.00409790
mov dword [esp + 0xc], eax
jmp dword [0x43e45c]
push edi
call fcn.00408f70
add esp, 4
mov edi, dword [esp + 0x18]
jmp dword [0x43e468]
push dword [esp + 0x80]
call fcn.00402900
add esp, 4
mov dword [esp + 0x20], 0x94915a5f
mov dword [esp + 0x24], 0x63666866
mov dword [esp + 0x28], 0x9c6890a6
mov dword [esp + 0x2c], 0x6b6e606e
mov dword [esp + 0x30], 0x8c819999
mov word [esp + 0x34], 0x7885
mov byte [esp + 0x36], 0xe6
lea ecx, [esp + 0x38]
mov byte [ecx + 7], 0
mov dword [ecx + 3], 0
mov dword [ecx - 1], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x1f
ja 0x422e07
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x20]
lea esi, [ecx + 0xde]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add ecx, 0xa9ba05de
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0xee
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x20
jb 0x422dc0
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.00402a50
add esp, 8
mov ecx, 0xffffffff
mov edx, 0xfffffffd
nop
add edx, 3
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x422e20
shr edx, 2
mov dword [esp + 8], ecx
movzx ecx, byte [eax + ecx - 1]
cmp ecx, 0x3d
je 0x422e43
cmp ecx, 0x2e
jne 0x422e44
dec edx
mov ebx, dword [esp + 8]
mov esi, ebx
or esi, 0xfffffffd
mov ecx, ebx
and ecx, 0xfffffffd
add ecx, esi
cmp byte [eax + ecx + 1], 0x3d
mov dword [esp + 0x1c], eax
je 0x422e66
cmp byte [eax + ebx - 2], 0x2e
jne 0x422e6d
mov dword [esp + 0x18], edi
dec edx
jmp 0x422e71
mov dword [esp + 0x18], edi
mov dword [esp + 0xe8], edx
lea eax, [edx + 1]
push eax
call fcn.00408f60
add esp, 4
mov dword [esp + 0x58], eax
cmp dword [esp + 8], 0
je 0x422f81
xor edi, edi
mov esi, 2
jmp 0x422eb2
mov edx, dword [esp + 0x78]
lea eax, [esi + 4]
add esi, 2
mov edi, edx
cmp esi, ecx
mov esi, eax
jae 0x422f81
mov ebx, dword [esp + 0x1c]
movzx eax, byte [ebx + esi - 2]
push eax
call fcn.00417640
add esp, 4
mov byte [esp + 0xc], al
movzx eax, byte [ebx + esi - 1]
push eax
call fcn.00417640
mov ecx, dword [esp + 0xc]
add esp, 4
mov bh, al
movzx edx, byte [esp + 0xc]
shl dl, 2
shr al, 4
and al, 3
or al, dl
mov edx, dword [esp + 0x58]
mov byte [edx + edi], al
lea edx, [edi + 1]
cmp esi, ecx
jae 0x422ea0
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + esi]
push eax
mov edi, edx
call fcn.00417640
mov edx, edi
mov ecx, dword [esp + 0xc]
add esp, 4
cmp al, 0x40
je 0x422ea0
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edi, dword [esp + 0xc]
lea edx, [edi + 2]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x58]
mov byte [edx + edi + 1], al
lea eax, [esi + 1]
cmp eax, ecx
jae 0x422e9c
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.00417640
mov ecx, dword [esp + 0xc]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x78]
je 0x422ea0
shl bl, 6
add al, bl
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0xc]
mov byte [edx + edi + 2], al
add edi, 3
mov edx, edi
jmp 0x422ea0
mov eax, dword [esp + 0xe8]
add eax, 0xfffffffb
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x58]
add eax, 5
mov dword [esp + 0x68], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
push 0x932a8d34
push dword [0x441d78]
call fcn.00435d20
add esp, 8
lea ecx, [esp + 0x10]
lea edx, [esp + 0x64]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
mov edi, dword [esp + 0x18]
push dword [esp + 0x80]
call fcn.00402900
add esp, 4
mov dword [esp + 0x20], 0x94915a5f
mov dword [esp + 0x24], 0x63666866
mov dword [esp + 0x28], 0x9c6890a6
mov dword [esp + 0x2c], 0x6b6e606e
mov dword [esp + 0x30], 0x8c819999
mov word [esp + 0x34], 0x7885
mov byte [esp + 0x36], 0xe6
lea ecx, [esp + 0x38]
mov byte [ecx + 7], 0
mov dword [ecx + 3], 0
mov dword [ecx - 1], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x1f
ja 0x423097
nop
nop
nop
nop
nop
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 + 0x20]
lea esi, [ecx + 0xde]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add ecx, 0xa9ba05de
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0xee
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x20
jb 0x423050
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.00402a50
add esp, 8
mov ecx, 0xffffffff
mov edx, 0xfffffffd
nop
add edx, 3
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x4230b0
shr edx, 2
mov dword [esp + 8], ecx
movzx ecx, byte [eax + ecx - 1]
cmp ecx, 0x3d
je 0x4230d3
cmp ecx, 0x2e
jne 0x4230d4
dec edx
mov ebx, dword [esp + 8]
mov esi, ebx
or esi, 0xfffffffd
mov ecx, ebx
and ecx, 0xfffffffd
add ecx, esi
cmp byte [eax + ecx + 1], 0x3d
mov dword [esp + 0x58], eax
mov dword [esp + 0x18], edi
je 0x4230fa
cmp byte [eax + ebx - 2], 0x2e
jne 0x4230fb
dec edx
mov dword [esp + 0x78], edx
lea eax, [edx + 1]
push eax
call fcn.00408f60
add esp, 4
mov dword [esp + 0x1c], eax
cmp dword [esp + 8], 0
je 0x423206
xor edx, edx
mov esi, 2
jmp 0x423140
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esi + 4]
add esi, 2
cmp esi, ecx
mov esi, eax
jae 0x423206
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0x58]
movzx eax, byte [edi + esi - 2]
push eax
call fcn.00417640
add esp, 4
mov ebx, eax
movzx eax, byte [edi + esi - 1]
push eax
call fcn.00417640
mov edx, dword [esp + 0x10]
add esp, 4
mov bh, al
shl bl, 2
shr al, 4
and al, 3
or al, bl
mov ecx, dword [esp + 0x1c]
mov byte [ecx + edx], al
mov ecx, dword [esp + 8]
inc edx
cmp esi, ecx
jae 0x423130
movzx eax, byte [edi + esi]
push eax
mov edi, edx
call fcn.00417640
mov edx, edi
mov ecx, dword [esp + 0xc]
add esp, 4
cmp al, 0x40
je 0x423130
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edx, dword [esp + 0xc]
lea edi, [edx + 2]
mov ecx, dword [esp + 0x1c]
mov byte [ecx + edx + 1], al
mov ecx, dword [esp + 8]
lea eax, [esi + 1]
cmp eax, ecx
jae 0x423123
mov eax, dword [esp + 0x58]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.00417640
mov ecx, dword [esp + 0xc]
add esp, 4
cmp al, 0x40
mov edx, edi
je 0x423130
shl bl, 6
add al, bl
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
mov byte [ecx + edx + 2], al
mov ecx, dword [esp + 8]
add edx, 3
jmp 0x423130
mov eax, dword [esp + 0x78]
add eax, 0xfffffffb
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x1c]
add eax, 5
mov dword [esp + 0x68], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
push 0x932a8d34
push dword [0x441d78]
call fcn.00435d20
add esp, 8
lea ecx, [esp + 0x10]
lea edx, [esp + 0x64]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
mov edi, dword [esp + 0x18]
jmp dword [0x43e44c]
push ebx
call fcn.00408f70
add esp, 4
push ebx
call fcn.00408f70
add esp, 4
jmp dword [0x43e4f0]
jmp dword [0x43e4fc]
jmp dword [0x43e504]
push dword [esp + 0x7c]
call fcn.00408f70
add esp, 4
mov eax, dword [esp + 0x84]
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret