Function at 0x422da2
Capabilities:
Encode data using xor
Hash data with crc32

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], 0x2bb62db3
mov dword [esp + 0x64], 0xd73729c5
mov dword [esp + 0x68], 0xd300d541
mov dword [esp + 0x6c], 0xdf46d13d
mov dword [esp + 0x70], 0xdbdadd31
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7b], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x1e
ja 0x421666
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x60]
add eax, 0x6a4df87a
mov edx, eax
and edx, ecx
mov esi, eax
xor esi, ecx
not ecx
or eax, ecx
add ecx, esi
add eax, edx
sub ecx, eax
lea eax, [ecx + edx*2]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0xaa
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x1f
jb 0x421620
lea edi, [esp + 0x60]
lea ecx, [esp + 0x48]
push edi
call fcn.00436c50
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x444960]
lea ecx, [esp + 0x48]
push 0x410
call fcn.00436ed0
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x444968]
mov dword [esp + 0x60], 0xaf33815
mov dword [esp + 0x64], 0xaed10
mov dword [esp + 0x68], 0x2c3533d1
mov dword [esp + 0x6c], 0x273e36d5
mov dword [esp + 0x70], 0x30dbc2d6
mov dword [esp + 0x74], 0x3fdcc6dd
mov dword [esp + 0x78], 0x2239de3a
mov dword [esp + 0x7c], 0x26df24c3
mov dword [esp + 0x80], 0xd6c0c6c2
mov dword [esp + 0x84], 0x2ed3e5c1
mov dword [esp + 0x88], 0xeb9ab1b1
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov word [esp + 0x94], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x35
ja 0x42176d
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0x189f3518]
add eax, 0x18
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0x58
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x36
jb 0x421730
lea eax, [esp + 0xc]
lea ecx, [esp + 0x48]
push 0
push 0x2b
push edi
push eax
call fcn.004374a0
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x1c], ecx
cmp ebx, ecx
sete al
jmp dword [eax*4 + 0x444970]
mov esi, dword [esp + 0x1c]
mov eax, esi
sub eax, ebx
sar eax, 2
imul eax, eax, 0x421
push eax
call fcn.00408ea0
add esp, 4
mov dword [esp + 0x44], 0
xor ecx, ecx
cmp ebx, esi
setne cl
mov dword [esp + 0x54], eax
mov dword [esp + 0x18], eax
jmp dword [ecx*4 + 0x444988]
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x44]
mov eax, ebx
and al, 1
mov edx, dword [case.0x421b66.8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp edx
movzx eax, al
mov edi, dword [esp + 0x54]
jmp dword [eax*4 + 0x444a00]
jmp dword [0x444a08]
jmp dword [0x444984]
xor esi, esi
test ebx, ebx
jne 0x421c99
jmp 0x421ca8
push ebx
call fcn.00402ac0
add esp, 4
mov ebx, dword [esp + 0x5c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 4
xor eax, eax
cmp ebx, dword [esp + 0x1c]
setne al
jmp dword [eax*4 + 0x444988]
mov esi, dword [ebx]
push 0x400
push 0
push edi
call fcn.004090d0
add esp, 0xc
lea eax, [esp + 0x30]
lea ecx, [esp + 0x48]
push eax
push 0x400
push edi
push esi
call fcn.00437320
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
xor eax, eax
jmp dword [ecx*4 + 0x444990]
xor ecx, ecx
cmp dword [esp + 0x30], 0
sete cl
jmp dword [ecx*4 + 0x444998]
mov eax, 1
jmp dword [eax*4 + 0x4449a0]
mov byte [esp + 0x45f], 0
movzx eax, byte [esp + 0x60]
xor edx, edx
test al, al
je 0x4218d1
mov ecx, edi
nop
cmp al, 0x2e
je 0x4218cf
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x4218c0
jmp 0x4218d1
mov edx, ecx
xor eax, eax
mov ecx, edx
mov dword [esp], edx
test edx, edx
setne al
jmp dword [eax*4 + 0x4449a8]
jmp dword [0x4449b4]
mov esi, edi
mov eax, dword [esp]
jmp 0x421906
mov esi, edi
mov eax, dword [esp]
inc eax
lea edi, [eax + 1]
movzx ecx, byte [eax + 1]
test cl, cl
mov edx, edi
mov dword [esp], edi
je 0x421934
mov edx, edi
mov edi, esi
xor esi, esi
nop
nop
nop
nop
cmp cl, 0x2e
je 0x42193e
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x421920
jmp dword [0x4449bc]
mov edi, esi
xor esi, esi
jmp dword [0x4449bc]
mov esi, edx
jmp dword [0x4449bc]
xor ecx, ecx
test esi, esi
setne cl
jmp dword [ecx*4 + 0x4449c0]
mov ecx, esi
sub ecx, dword [esp]
lea edx, [ecx + ecx*2]
shr edx, 2
movzx eax, byte [eax + ecx]
cmp eax, 0x3d
je 0x42196d
cmp eax, 0x2e
jne 0x42196e
dec edx
mov eax, dword [esp]
movzx eax, byte [ecx + eax - 2]
cmp eax, 0x3d
mov dword [esp + 0x2c], ecx
je 0x421984
cmp eax, 0x2e
jne 0x421985
dec edx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], edx
lea eax, [edx + 1]
push eax
call fcn.00408ea0
add esp, 4
mov dword [esp + 0x24], eax
cmp esi, dword [esp]
je 0x421aa5
xor ebx, ebx
mov esi, 2
jmp 0x4219d2
mov edx, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esi + 4]
add esi, 2
mov ebx, edx
cmp esi, ecx
mov esi, eax
jae 0x421aa5
mov edi, dword [esp]
movzx eax, byte [edi + esi - 2]
push eax
call fcn.0040ff50
add esp, 4
mov byte [esp + 0x28], al
movzx eax, byte [edi + esi - 1]
push eax
call fcn.0040ff50
add esp, 4
movzx ecx, byte [esp + 0x28]
shl cl, 2
mov edx, eax
shr dl, 4
and dl, 3
or dl, cl
mov ecx, dword [esp + 0x24]
mov byte [ecx + ebx], dl
lea edx, [ebx + 1]
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
jae 0x4219c0
mov byte [esp + 0x20], al
mov dword [esp + 0x28], ebx
movzx eax, byte [edi + esi]
push eax
mov edi, edx
call fcn.0040ff50
mov edx, edi
mov ecx, dword [esp + 0x30]
add esp, 4
cmp al, 0x40
je 0x4219c0
mov ebx, eax
movzx edx, byte [esp + 0x20]
shl dl, 4
shr al, 2
and al, 0xf
or al, dl
mov edi, dword [esp + 0x28]
lea edx, [edi + 2]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x24]
mov byte [edx + edi + 1], al
lea eax, [esi + 1]
cmp eax, ecx
jae 0x4219af
mov eax, dword [esp]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.0040ff50
mov ecx, dword [esp + 0x30]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x20]
je 0x4219c0
shl bl, 6
add al, bl
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov byte [edx + edi + 2], al
add edi, 3
mov edx, edi
jmp 0x4219c0
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x24]
mov byte [esi + eax], 0
push esi
call fcn.00401ec0
add esp, 4
mov ebx, eax
jmp dword [0x4449c8]
push esi
call fcn.00408eb0
add esp, 4
push ebx
call fcn.00402880
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
lea edi, [esp + 0x60]
jmp dword [ecx*4 + 0x4449d0]
mov dword [esp + 0x30], 0xf394585b
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xb
ja 0x421b51
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx - 0x70847622]
and esi, edx
add ecx, edx
add ecx, 0x8f7b89de
add esi, esi
sub ecx, esi
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0xee
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xc
jb 0x421b10
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.00402800
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4449d8]
mov edx, dword [esp + 0x18]
jmp 0x421b99
movzx ecx, byte [eax]
test cl, cl
je 0x421b8d
inc eax
mov edx, dword [esp + 0x18]
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x421b80
jmp 0x421b91
mov edx, dword [esp + 0x18]
mov word [edx], 0x203a
add edx, 2
movzx eax, byte [esp + 0x60]
test al, al
je 0x421bbb
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 0x421bb0
mov byte [edx], 0xa
inc edx
mov dword [esp + 0x18], edx
mov al, 1
mov dword [esp + 0x44], eax
jmp case.0x4218dd.10
mov ebx, dword [esp + 0x18]
mov byte [ebx], 0
sub ebx, edi
mov dword [esp + 0x60], 0x5f525d6d
mov dword [esp + 0x64], 0x53474659
mov dword [esp + 0x68], 0x4c48565d
mov dword [esp + 0x6c], 0x5a4a6e0b
mov dword [esp + 0x70], 0x6701405d
mov dword [esp + 0x74], 0x45534e43
mov dword [esp + 0x78], 0xc33e0743
mov word [esp + 0x7c], 0x493c
mov dword [esp + 0x82], 0
mov dword [esp + 0x7e], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x25
ja 0x421c7f
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x60]
lea esi, [eax - 0x38cad45a]
add eax, 0xa6
or eax, esi
and eax, edx
or esi, edx
sub esi, eax
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x30]
add al, 0x76
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x60], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x26
jb 0x421c40
lea eax, [esp + 0x60]
push ebx
push edi
push eax
call fcn.00409a50
mov ebx, eax
jmp dword [0x444a08]
jmp dword [0x444a10]
cmp ebx, dword [esp + 0x1c]
je 0x421ca8
push ebx
call fcn.00408eb0
add esp, 4
mov ebx, esi
lea ecx, [esp + 0x48]
call fcn.00437010
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push edi
call fcn.00408eb0
add esp, 4
push edi
call fcn.00408eb0
add esp, 4
jmp dword [0x444a18]
and bl, 1
mov esi, ebx
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
test ebx, ebx
jne 0x421c99
jmp 0x421ca8
int3
xor edx, edx
test edi, edi
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x444a98]
jmp dword [ecx*4 + 0x444a20]
mov dword [esi + 0x60], 0x2b72257a
mov dword [esi + 0x64], 0x2f612961
mov dword [esi + 0x68], 0x33792d61
mov dword [esi + 0x6c], 0x37663166
mov dword [esi + 0x70], 0x3b683569
mov dword [esi + 0x74], 0x3f7f3969
mov dword [esi + 0x78], 0x3743d7b
mov dword [esi + 0x7c], 0x752014d
mov dword [esi + 0x80], 0xb58054d
mov dword [esi + 0x84], 0xf59095f
mov dword [esi + 0x88], 0x13580d44
mov dword [esi + 0x8c], 0x1757114b
mov dword [esi + 0x90], 0x1b5f1540
mov dword [esi + 0x94], 0x1f421946
mov dword [esi + 0x98], 0x63b01db9
mov dword [esi + 0x9c], 0x67cb61d8
mov dword [esi + 0xa0], 0x6b31653a
mov dword [esi + 0xa4], 0x6fc369de
mov dword [esi + 0xa8], 0x73df6dc9
mov word [esi + 0xac], 0x7172
mov word [ebx + 8], 0
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x57
ja 0x421f09
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edi, byte [esi + edx + 0x60]
lea edx, [ecx + edi]
add ecx, 5
and ecx, edi
add ecx, ecx
sub edx, ecx
add edx, 0xcce4da05
mov dword [esi + 0xe4], edx
mov ecx, dword [esi + 0xe4]
add cl, 0xdd
mov edx, dword [esi]
mov byte [esi + edx + 0x60], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x58
jb 0x421ed0
lea ecx, [esi + 0x18]
lea edx, [esi + 0x60]
push 0
push 0
push eax
push ecx
push edx
call fcn.0043bef0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x444a28]
mov dword [esi + 0x10], ebx
lea ebx, [esi + 0xe0]
lea eax, [esi + 0x10c]
push ebx
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esi + 0x18]
call fcn.0043c310
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444a40]
mov ecx, dword [esi + 0xe0]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x421f70
mov eax, 0xffffffff
push eax
call fcn.00408ea0
add esp, 4
mov edi, eax
mov dword [esi + 0x60], 0x4bc65529
mov dword [esi + 0x64], 0x4fdc49df
mov dword [esi + 0x68], 0x43d04d29
mov dword [esi + 0x6c], 0x473041de
mov dword [esi + 0x70], 0x7bd04521
mov dword [esi + 0x74], 0x7f7879e2
mov eax, dword [esi + 0xc]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x1c
ja 0x421ff6
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [esi + ecx + 0x60]
lea edx, [eax + 0x4d]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x8c2e734d
mov dword [esi + 0xe4], eax
mov eax, dword [esi + 0xe4]
add al, 0xe5
mov ecx, dword [esi]
mov byte [esi + ecx + 0x60], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x1d
jb 0x421fc0
push ebx
push edi
push 0
lea eax, [esi + 0x60]
push eax
push dword [esi + 0x18]
call fcn.0043c960
add esp, 0x14
shr eax, 0x1f
mov dword [esi + 8], edi
jmp dword [eax*4 + 0x444a48]
mov dword [esi + 8], 0
jmp dword [0x444a50]
push edi
call fcn.00408eb0
add esp, 4
mov dword [esi + 8], 0
jmp dword [0x444a58]
jmp dword [0x444a38]
mov edi, 4
xor eax, eax
cmp edi, 4
setb al
jmp dword [eax*4 + 0x444a88]
jmp dword [0x444a58]
mov ebx, dword [esi + 0x18]
mov dword [esi + 0x60], 0x70716e6f
mov eax, dword [esi + 0x14]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xe
ja 0x4220d6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [esi + edx + 0x60]
lea edi, [ecx + 0x56918c0e]
add ecx, 0xe
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0xe4], edi
mov ecx, dword [esi + 0xe4]
add cl, 0x9e
mov edx, dword [esi]
mov byte [esi + edx + 0x60], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0xf
jb 0x4220a0
mov ecx, dword [0x44ac28]
test ecx, ecx
je case.0x42200f.4
mov dword [esi + 4], ebx
mov edx, dword [esi + 0x60]
xor edi, edi
mov ebx, dword [0x44ac2c]
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x42210a
mov eax, edi
and eax, 1
xor edi, 1
lea edi, [edi + eax*2]
cmp edi, ecx
jb 0x4220f0
jmp case.0x42200f.4
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x42200f.4
push dword [esi + 4]
push 1
push dword [0x44ac30]
push ecx
call fcn.00438a60
add esp, 0x10
jmp case.0x42200f.4
jmp dword [0x444a60]
mov eax, dword [esi + 0x18]
mov dword [esi + 4], eax
mov dword [esi + 0x60], 0x70716e6f
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x6b], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xe
ja 0x4221a6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [esi + edx + 0x60]
lea edi, [ecx + 0x56918c0e]
add ecx, 0xe
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0xe4], edi
mov ecx, dword [esi + 0xe4]
add cl, 0x9e
mov edx, dword [esi]
mov byte [esi + edx + 0x60], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0xf
jb 0x422170
mov ecx, dword [0x44ac28]
test ecx, ecx
je 0x422130
mov edx, dword [esi + 0x60]
xor edi, edi
mov ebx, dword [0x44ac2c]
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x4221e0
mov eax, edi
and eax, 1
xor edi, 1
lea edi, [edi + eax*2]
cmp edi, ecx
jb 0x4221c0
jmp 0x422130
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x422130
push dword [esi + 4]
push 1
push dword [0x44ac30]
push ecx
call fcn.00438a60
add esp, 0x10
jmp 0x422130
xor eax, eax
cmp dword [esi + 8], 0
setne al
mov edi, 2
mov ebx, dword [esi + 0x10]
jmp dword [eax*4 + 0x444a68]
lea eax, [esi + 0x60]
push eax
call fcn.0043b490
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x444a70]
xor eax, eax
cmp dword [esi + 0x60], 1
sete al
jmp dword [eax*4 + 0x444a78]
xor edi, edi
mov eax, 1
jmp dword [eax*4 + 0x444a80]
xor eax, eax
cmp edi, 4
setb al
jmp dword [eax*4 + 0x444a88]
xor eax, eax
jmp dword [eax*4 + 0x444a80]
xor edi, edi
xor eax, eax
cmp edi, 4
setb al
jmp dword [eax*4 + 0x444a88]
xor edx, edx
cmp edi, 4
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x444a90]
xor ebx, ebx
cmp dword [esi + 8], 0
sete bl
jmp dword [ebx*4 + 0x444aa0]
mov dword [esi + 0x60], 0x4be145fa
mov dword [esi + 0x64], 0x4fda49db
mov dword [esi + 0x68], 0xb3e34de4
mov dword [esi + 0x6c], 0xb70cb11b
mov dword [esi + 0x70], 0xbb25b513
mov dword [esi + 0x74], 0xbf12b928
mov dword [esi + 0x78], 0xa315bd11
mov dword [esi + 0x7c], 0xa73aa1f0
mov dword [esi + 0x80], 0xab0ea502
lea eax, [esi + 0x84]
mov word [esi + 0x84], 0xa9aa
mov dword [esi + 0x86], 0
mov dword [esi + 0x8a], 0
mov word [esi + 0x8e], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x2f
ja 0x42237c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [esi + edx + 0x60]
lea edi, [ecx + edx]
add edi, 0xaa1718f5
add ecx, 0xaa1718f5
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 0xe4], edi
mov ecx, dword [esi + 0xe4]
add cl, 0x4d
mov edx, dword [esi]
mov byte [esi + edx + 0x60], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x30
jb 0x422340
lea edi, [esi + 0xe4]
lea edx, [esi + 0x60]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 0x108]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
mov ecx, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4223b0
cmp eax, 0xffffffd9
mov edi, dword [esi + 0x58]
jge 0x4223d1
mov eax, 0xffffffff
jmp 0x4223d4
xor eax, eax
jmp 0x42372a
add eax, 0x26
push eax
call fcn.00408ea0
add esp, 4
mov dword [edi], eax
mov edx, dword [esi + 8]
movzx ecx, word [edx]
test cx, cx
je 0x422401
add edx, 2
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4223f0
mov word [eax], 0
movzx ecx, word [esi + 0xe4]
test cx, cx
je 0x422431
lea edx, [esi + 0xe6]
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 0x422420
mov word [eax], 0
jmp dword [ebx*4 + 0x444aa8]
push dword [esi + 8]
call fcn.00408eb0
add esp, 4
push 0x60
push 3
push 0x120089
mov ebx, dword [esi + 0xd4]
push ebx
push dword [edi]
call fcn.0043b6c0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444ab0]
xor ebx, ebx
mov eax, dword [edi]
xor ecx, ecx
test eax, eax
sete cl
xor edi, edi
jmp dword [ecx*4 + 0x444b00]
push eax
call fcn.00408eb0
add esp, 4
xor eax, eax
cmp ebx, edi
sete al
mov edx, edi
jmp dword [eax*4 + 0x444b08]
xor eax, eax
test ebx, ebx
jne 0x4236e8
jmp 0x42372a
push 0
push dword [esi + 0x24]
push dword [ebx]
call fcn.0043ba40
add esp, 0xc
not eax
shr eax, 0x1f
mov edi, ebx
jmp dword [eax*4 + 0x444ab8]
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
jmp 0x422536
mov eax, dword [esi + 0x24]
mov ebx, dword [eax]
lea eax, [ebx + 1]
push eax
call fcn.00408ea0
add esp, 4
mov ecx, edi
mov edi, eax
mov eax, dword [esi + 0x20]
mov dword [eax], edi
push 0
push ebx
push edi
push dword [ecx]
call fcn.0043bb40
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444ac0]
mov dword [esi + 8], 0
xor eax, eax
test edi, edi
sete al
mov dword [esi + 0xc], 0
jmp dword [eax*4 + 0x444af8]
push edi
call fcn.00408eb0
add esp, 4
mov edi, dword [esi + 0xd4]
mov eax, dword [edi]
mov dword [esi + 0x60], 0x70716e6f
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x6b], 0
mov dword [esi + 0x18], 0
mov ecx, dword [esi + 0x18]
cmp ecx, 0xe
ja 0x4225a3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x18]
movzx edx, byte [esi + edx + 0x60]
lea edi, [ecx + 0x56918c0e]
add ecx, 0xe
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi], edi
mov ecx, dword [esi]
add cl, 0x9e
mov edx, dword [esi + 0x18]
mov byte [esi + edx + 0x60], cl
inc dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
cmp ecx, 0xf
jb 0x422570
mov ecx, dword [0x44ac28]
test ecx, ecx
je case.default.0x422996
mov edx, dword [esi + 0x60]
xor edi, edi
mov ebx, dword [0x44ac2c]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x4225d0
inc edi
cmp ecx, edi
jne 0x4225c0
jmp case.default.0x422996
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x422972
mov eax, dword [esi + 0x58]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 8]
jmp dword [ecx*4 + 0x444b00]
xor eax, eax
cmp ebx, edi
sete al
mov edx, edi
jmp dword [eax*4 + 0x444b08]
mov ecx, edx
not ecx
and ecx, ebx
mov dword [esi + 8], ebx
mov eax, ebx
not eax
mov dword [esi + 0xc], edx
and eax, edx
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.00408ea0
add esp, 4
mov ecx, dword [esi + 0x3c]
mov dword [ecx], eax
mov ecx, dword [esi + 0x34]
mov dword [ecx], eax
mov eax, dword [esi + 0x40]
mov byte [eax], 0
mov edi, dword [esi + 0xdc]
mov dword [edi], 0xa37ead49
mov dword [edi + 4], 0xa701a113
mov dword [edi + 8], 0xbb06a505
mov dword [edi + 0xc], 0xbf0eb979
mov dword [edi + 0x10], 0xb376bd0c
mov dword [edi + 0x14], 0xb702b111
mov dword [edi + 0x18], 0x8b6fb515
mov dword [edi + 0x1c], 0x8f598924
mov dword [edi + 0x20], 0x83278d38
mov dword [edi + 0x24], 0x873b8121
mov dword [edi + 0x28], 0x9b268528
mov dword [edi + 0x2c], 0x9f39992b
mov dword [edi + 0x30], 0x932e9d3d
mov dword [edi + 0x34], 0x971c9162
mov dword [edi + 0x38], 0x6bd09530
lea eax, [edi + 0x3c]
mov word [edi + 0x3c], 0x6968
mov dword [edi + 0x3e], 0
mov byte [edi + 0x42], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x42
ja 0x422739
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
mov edi, 0x7cee2439
sub edi, edx
add edx, 0xc6
and edx, ecx
or edi, ecx
not edi
add edi, ecx
sub edi, edx
mov dword [esi + 0x60], edi
mov edi, dword [esi + 0xdc]
mov ecx, dword [esi + 0x60]
mov edx, ecx
xor edx, 0x95
and ecx, 0x15
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi]
mov byte [edi + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x43
jb 0x4226f0
mov edx, dword [esi + 0xd0]
mov ebx, edi
mov edi, edx
mov ecx, 0xf
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov edi, edx
add edi, 0x3c
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0xcc]
push edi
push 0
push 0
push 0x1e
push edx
push 0
call dword [0x449c1c]
mov ebx, dword [edi]
test ebx, ebx
jns 0x422780
mov eax, 0xffffffff
jmp 0x422783
lea eax, [ebx + ebx]
push eax
call fcn.00408ea0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x28]
mov dword [eax], edi
push dword [esi + 0xcc]
push ebx
push edi
push 0x1e
push dword [esi + 0xd0]
push 0
call dword [0x449c1c]
push 0x60
push 3
push 0x120089
mov ebx, dword [esi + 0x54]
push ebx
push edi
call fcn.0043b6c0
mov ecx, dword [esi + 0x28]
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444b10]
push 0
mov edi, dword [esi + 0xd8]
push edi
push dword [ebx]
call fcn.0043ba40
add esp, 0xc
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444b18]
mov ebx, dword [edi]
lea eax, [ebx + 1]
push eax
call fcn.00408ea0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xc0]
mov dword [eax], ecx
push 0
push ebx
mov ebx, dword [esi + 0x54]
mov dword [esi + 4], ecx
push ecx
push dword [ebx]
call fcn.0043bb40
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444b20]
xor eax, eax
mov ecx, dword [esi + 4]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x444c08]
jmp case.0x422996.6
mov eax, dword [esi + 0x24]
mov ebx, dword [eax]
mov byte [edi + ebx], 0
push 0x20
call fcn.00408ea0
add esp, 4
mov ecx, 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 + 0x50]
mov dword [eax], ecx
mov dword [esi + 4], ecx
push ebx
push edi
call fcn.00424a90
movzx eax, al
xor edi, edi
mov ebx, dword [esi + 0x20]
jmp dword [eax*4 + 0x444ac8]
mov edx, dword [esi + 0x1c]
mov dword [edx], 0x67185e3b
mov dword [edx + 4], 0x1260106b
mov dword [edx + 8], 0x171b0f27
mov dword [edx + 0xc], 0x82d1c62
mov dword [edx + 0x10], 0xe031868
mov dword [edx + 0x14], 0x12033
mov dword [edx + 0x18], 0x7f787077
mov dword [edx + 0x1c], 0xe97f
mov byte [edx + 0x20], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x20
ja 0x422920
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax - 0x73f78de2]
add eax, 0x1e
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x60], edx
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x60]
add al, 0x2e
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x21
jb 0x4228f0
mov ecx, dword [esi + 4]
push edx
call fcn.00424c80
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444ad0]
mov ecx, edi
mov eax, dword [esi + 0x50]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ecx
jmp dword [eax*4 + 0x444af0]
mov ecx, edi
call fcn.00424df0
push edi
call fcn.00408eb0
add esp, 4
mov edi, dword [ebx]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444af8]
push eax
push 1
push dword [0x44ac30]
push ecx
call fcn.00438a60
add esp, 0x10
mov eax, dword [esi + 0x58]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 8]
jmp dword [ecx*4 + 0x444b00]
jmp dword [0x444b2c]
mov edi, dword [edi]
mov ebx, dword [esi + 4]
mov byte [ebx + edi], 0
push 0x20
call fcn.00408ea0
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, dword [esi + 0x2c]
mov dword [ecx], eax
mov ecx, eax
push edi
push ebx
call fcn.00424a90
nop
nop
nop
mov eax, dword [esi + 0xd8]
mov ebx, dword [eax]
mov eax, dword [esi + 4]
mov byte [eax + ebx], 0
push 0x20
call fcn.00408ea0
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 + 0x2c]
mov dword [eax], edi
mov ecx, edi
push ebx
push dword [esi + 4]
call fcn.00424a90
jmp dword [0x444b30]
movzx eax, al
jmp dword [eax*4 + 0x444b38]
mov edx, dword [esi + 0xc8]
mov dword [edx], 0x5f2e24c3
mov dword [edx + 4], 0x545e4e63
mov dword [edx + 8], 0x5f4b479f
mov dword [edx + 0xc], 0xb2915a68
mov dword [edx + 0x10], 0x48435e52
mov dword [edx + 0x14], 0x4d49bc8b
mov dword [edx + 0x18], 0x4759464c
mov dword [edx + 0x1c], 0x4f5556b7
mov word [edx + 0x20], 0xf54d
mov dword [edx + 0x26], 0
mov dword [edx + 0x22], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x29
ja 0x422b03
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 [edx + ecx]
lea edx, [eax + 0x6a8f0dbd]
add eax, 0xbd
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x60], edx
mov edx, dword [esi + 0xc8]
mov eax, dword [esi + 0x60]
mov ecx, eax
xor ecx, 0xd4
and eax, 0x54
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x2a
jb 0x422ac0
mov ecx, edi
push edx
call fcn.00424c80
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444b40]
mov eax, dword [esi + 0x2c]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444bf0]
add eax, 8
xor edi, edi
mov eax, dword [eax]
mov ecx, dword [esi + 0x5c]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
mov dword [esi + 0x30], 0
xor edx, edx
jmp dword [ecx*4 + 0x444ad8]
mov dword [esi + 8], edi
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0x50]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444af0]
mov edi, dword [ebx]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444af8]
mov ecx, dword [esi + 0x5c]
mov eax, dword [ecx]
add eax, 4
mov eax, dword [eax]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444ad8]
jmp dword [0x444ae4]
mov ecx, edx
not ecx
and ecx, edi
mov ebx, edi
not ebx
and ebx, edx
sub ebx, ecx
mov ecx, dword [eax]
mov eax, dword [esi + 0x48]
mov dword [eax], ecx
mov eax, ecx
sar ebx, 3
cmp edx, dword [esi + 0x30]
mov dword [esi + 0x1c], ebx
je 0x422bcb
mov ecx, edi
mov edi, ebx
jmp 0x422c6e
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], edx
mov eax, edx
mov dword [esi + 8], edi
sub eax, edi
sar eax, 3
mov edi, eax
shr edi, 1
add edi, eax
lea eax, [ebx + 1]
cmp edi, eax
ja 0x422bea
mov edi, eax
lea eax, [edi*8]
push eax
call fcn.00408ea0
add esp, 4
mov dword [esi + 0x14], eax
mov eax, dword [esi + 8]
test eax, eax
je 0x422c58
mov ebx, dword [esi + 0xc]
cmp eax, ebx
je 0x422c47
mov dword [esi + 4], edi
xor eax, eax
mov edx, dword [esi + 8]
mov edi, dword [esi + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [edx + eax]
mov dword [edi + eax], ecx
mov ecx, dword [edx + eax + 4]
mov dword [edi + eax + 4], ecx
mov dword [edx + eax], 0
lea ecx, [edx + eax]
add ecx, 8
add eax, 8
cmp ecx, ebx
jne 0x422c20
mov ebx, edx
mov edi, dword [esi + 4]
push ebx
call fcn.00408eb0
add esp, 4
mov eax, dword [esi + 0x48]
mov eax, dword [eax]
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 0x1c]
mov ebx, dword [esi + 0x14]
lea edx, [ebx + ecx*8]
lea eax, [ebx + edi*8]
mov edi, ecx
mov ecx, ebx
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], edx
mov dword [ecx + edi*8], 0
mov dword [esi + 0x14], ecx
mov dword [ecx + edi*8 + 4], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [eax + ebx], 0
jne 0x422c90
push ecx
mov dword [esi + 0x10], eax
mov dword [esi + 4], ecx
call fcn.00408ea0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x1c]
mov dword [eax + ecx*8], edi
mov ecx, dword [esi + 4]
shr ecx, 2
mov edx, dword [esi + 0x10]
mov eax, edi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, dword [esi + 4]
and edx, 0xfffffffc
add eax, edx
mov edi, eax
add edx, dword [esi + 0x10]
mov ecx, dword [esi + 4]
shr ecx, 1
and ecx, 1
mov eax, edx
mov dword [esi + 8], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 4]
test al, 1
je 0x422cfa
and eax, 2
movzx ecx, byte [edx + eax]
mov edx, dword [esi + 8]
mov byte [edx + eax], cl
mov eax, dword [esi + 4]
cmp eax, 1
mov edx, dword [esi + 0xc]
je 0x422d11
lea ecx, [eax - 1]
cmp eax, 2
jne 0x422d18
mov eax, 0xffffffff
jmp 0x422d61
xor eax, eax
mov edi, dword [esi + 0x1c]
jmp 0x422d81
and ebx, 0xfffffffe
mov eax, 0xffffffff
mov edi, dword [esi + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
shr edx, 8
xor al, byte [edi]
movzx eax, al
xor edx, dword [eax*4 + 0x43e7a0]
mov eax, edx
shr eax, 8
xor dl, byte [edi + 1]
add edi, 2
movzx edx, dl
xor eax, dword [edx*4 + 0x43e7a0]
add ebx, 0xfffffffe
jne 0x422d30
mov dword [esi + 0x10], edi
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 0x1c]
test cl, 1
je 0x422d7f
mov ecx, eax
shr ecx, 8
mov ebx, dword [esi + 0x10]
xor al, byte [ebx]
movzx eax, al
xor ecx, dword [eax*4 + 0x43e7a0]
mov eax, ecx
not eax
mov ecx, dword [esi + 0x14]
mov dword [ecx + edi*8 + 4], eax
add edx, 8
mov edi, ecx
jmp case.0x422930.5
not eax
mov ecx, dword [esi + 0x10]
mov dword [edi + ecx*8 + 4], eax
add edx, 8
jmp dword [0x444ae8]
mov eax, edx
not eax
and eax, edi
mov ebx, edi
not ebx
and ebx, edx
sub ebx, eax
mov eax, dword [esi + 0x5c]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [esi + 0x48]
mov dword [eax], ecx
sar ebx, 3
cmp edx, dword [esi + 0x30]
mov dword [esi + 0x10], ebx
jne 0x422e61
mov dword [esi + 4], ecx
mov dword [esi + 0xc], edx
mov eax, edx
sub eax, edi
sar eax, 3
mov ecx, eax
shr ecx, 1
add ecx, eax
lea eax, [ebx + 1]
cmp ecx, eax
mov dword [esi + 8], edi
ja 0x422dea
mov ecx, eax
mov dword [esi + 0x14], ecx
lea eax, [ecx*8]
push eax
call fcn.00408ea0
add esp, 4
mov edi, eax
mov eax, dword [esi + 8]
test eax, eax
mov ecx, dword [esi + 4]
je 0x422e55
mov ebx, dword [esi + 0xc]
cmp eax, ebx
je 0x422e44
mov edx, eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [edx + eax]
mov dword [edi + eax], ecx
mov ecx, dword [edx + eax + 4]
mov dword [edi + eax + 4], ecx
mov dword [edx + eax], 0
lea ecx, [edx + eax]
add ecx, 8
add eax, 8
cmp ecx, ebx
jne 0x422e20
mov ebx, edx
push ebx
call fcn.00408eb0
add esp, 4
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov ebx, dword [esi + 0x10]
lea edx, [edi + ebx*8]
mov eax, dword [esi + 0x14]
lea eax, [edi + eax*8]
mov dword [esi + 0x30], eax
mov dword [esi + 0xc], edx
mov dword [edi + ebx*8], 0
mov dword [esi + 8], edi
mov dword [edi + ebx*8 + 4], 0
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edi
inc edi
cmp byte [ecx + ebx], 0
jne 0x422e80
push edi
mov dword [esi + 4], ecx
mov dword [esi + 0x14], edi
call fcn.00408ea0
add esp, 4
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 8]
mov dword [edx + ecx*8], eax
mov ecx, edi
shr ecx, 2
mov edx, dword [esi + 4]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edi, dword [esi + 0x14]
mov edx, edi
and edx, 0xfffffffc
add eax, edx
mov ecx, dword [esi + 4]
add edx, ecx
mov ecx, edi
shr ecx, 1
and ecx, 1
mov edi, edx
mov dword [esi + 0x1c], edx
mov dword [esi + 0x24], eax
mov edi, eax
mov eax, dword [esi + 0x1c]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [esi + 0x14]
mov edi, ecx
test cl, 1
je 0x422ef2
mov ecx, edi
and ecx, 2
movzx edx, byte [edx + ecx]
mov eax, dword [esi + 0x24]
mov byte [eax + ecx], dl
cmp edi, 1
mov edx, dword [esi + 0xc]
je 0x422f20
lea ecx, [edi - 1]
cmp edi, 2
mov edi, dword [esi + 8]
jne 0x422f30
mov eax, 0xffffffff
mov ebx, dword [esi + 0x20]
test cl, 1
je 0x422d90
jmp 0x422f80
xor eax, eax
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0x20]
jmp 0x422d92
mov dword [esi + 0x14], ecx
and ebx, 0xfffffffe
mov eax, 0xffffffff
mov ecx, dword [esi + 4]
nop
nop
mov edx, eax
shr edx, 8
xor al, byte [ecx]
movzx eax, al
xor edx, dword [eax*4 + 0x43e7a0]
mov eax, edx
shr eax, 8
xor dl, byte [ecx + 1]
add ecx, 2
movzx edx, dl
xor eax, dword [edx*4 + 0x43e7a0]
add ebx, 0xfffffffe
jne 0x422f40
mov dword [esi + 4], ecx
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 0x20]
mov ecx, dword [esi + 0x14]
test cl, 1
je 0x422d90
mov ecx, eax
shr ecx, 8
mov ebx, dword [esi + 4]
xor al, byte [ebx]
mov ebx, dword [esi + 0x20]
movzx eax, al
xor ecx, dword [eax*4 + 0x43e7a0]
mov eax, ecx
jmp 0x422d90
add eax, 8
mov eax, dword [eax]
mov ecx, dword [esi + 0x38]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [esi + 0x2c]
jmp dword [ecx*4 + 0x444b48]
jmp dword [0x444b58]
xor ebx, ebx
cmp dword [eax + 0x18], 3
jne 0x422fc0
mov ebx, dword [eax + 0x10]
jmp 0x422fc0
mov edi, dword [eax]
xor ecx, ecx
mov dword [esi + 0x10], edi
test edi, edi
setne cl
jmp dword [ecx*4 + 0x444b60]
xor ecx, ecx
test ebx, ebx
setne cl
jmp dword [ecx*4 + 0x444b68]
add eax, 4
mov eax, dword [eax]
mov ecx, dword [esi + 0x38]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444b48]
mov eax, ebx
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x423043
sub ecx, ebx
inc ecx
shr ecx, 1
mov dword [esi + 0x30], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408ea0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0xc4]
mov dword [eax], edx
movsx ecx, byte [ebx]
xor eax, eax
test ecx, ecx
setne al
mov dword [esi + 0x20], edx
jmp dword [eax*4 + 0x444b70]
inc ebx
mov eax, dword [esi + 4]
mov byte [eax], dl
mov edx, eax
inc edx
movsx ecx, byte [ebx]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x444b70]
mov dword [esi + 4], edx
mov eax, ecx
not eax
or eax, 0xffffffdf
lea edx, [ecx - 0x30]
cmp edx, 0xa
jb 0x42307e
mov dl, 0xff
lea edi, [ecx + eax]
add edi, 0xffffffc0
cmp edi, 6
jae case.default.0x42309b
add ecx, eax
add cl, 0xca
mov edx, ecx
movsx ecx, byte [ebx + 1]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x444b78]
mov dword [esi + 0x1c], ebx
mov eax, ecx
not eax
or eax, 0xffffffdf
lea ebx, [ecx - 0x30]
mov edi, ebx
mov dword [esi + 0x14], ebx
cmp ebx, 0xa
jb 0x4230be
mov bl, 0xff
mov dword [esi + 0x14], ebx
shl dl, 4
mov ebx, dword [esi + 0x1c]
add ebx, 2
lea edi, [ecx + eax]
add edi, 0xffffffc0
cmp edi, 6
jb 0x4230e0
mov ecx, dword [esi + 0x14]
jmp 0x4230e5
add ecx, eax
add cl, 0xca
or dl, cl
mov eax, dword [esi + 4]
mov byte [eax], dl
mov edx, eax
inc edx
movsx ecx, byte [ebx]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x444b70]
mov byte [edx], 0
mov edi, dword [esi + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edi
movzx ecx, byte [edi - 1]
movsx eax, cl
lea edx, [eax - 9]
cmp edx, 5
jb 0x423110
cmp eax, 0x20
je 0x423110
movzx eax, cl
cmp eax, 0x2b
je 0x423136
cmp eax, 0x2d
jne 0x423382
cmp cl, 0x2b
sete byte [esi + 0x1c]
movzx ecx, byte [edi]
cmp cl, 0x30
jne 0x423155
movzx eax, byte [edi + 1]
and al, 0xdf
xor ecx, ecx
cmp al, 0x58
sete cl
lea edi, [edi + ecx*2]
mov dword [esi + 0x10], edi
mov dword [esi + 4], 0
xor ecx, ecx
xor eax, eax
jmp 0x423177
mov dword [esi + 4], edi
mov ecx, eax
mov eax, ebx
mov ebx, eax
mov eax, dword [esi + 4]
mov dword [esi + 0x14], eax
mov edi, dword [esi + 0x10]
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 0xa
jb 0x4231b0
mov dword [esi + 4], ecx
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x19
ja 0x423225
or al, 0x20
cmp al, 0x66
jg 0x423225
movsx edx, al
add edx, 0xffffffa9
mov ecx, dword [esi + 4]
inc edi
mov dword [esi + 0x10], edi
mov edi, ecx
and ecx, ebx
mov dword [esi + 4], 0x22
mov eax, 0xffffffff
cmp ecx, 0xffffffff
mov ecx, 0xffffffff
je 0x423177
mov eax, ebx
shld ebx, edi, 4
shr eax, 0x1c
shl edi, 4
mov dword [esi + 4], eax
neg eax
mov eax, 0
sbb eax, eax
or ebx, eax
or eax, edi
mov ecx, edx
sar ecx, 0x1f
add eax, edx
adc ecx, ebx
mov ebx, 0xffffffff
mov edx, 0xffffffff
jb 0x423203
mov ebx, ecx
mov edx, eax
mov edi, 0x22
mov ecx, 0x22
jb 0x423212
mov ecx, dword [esi + 0x14]
mov eax, edx
cmp dword [esi + 4], 0
jne 0x423170
mov edi, ecx
jmp 0x423170
xor edi, edi
mov eax, dword [esi + 4]
neg eax
mov ecx, 0
sbb ecx, ebx
cmp byte [esi + 0x1c], 0
jne case.default.0x42325a
mov dword [esi + 4], eax
mov ebx, ecx
mov dword [esi + 0x1c], ebx
mov eax, dword [case.0x422b12.23]
mov ecx, dword [case.0x422b12.26]
mov dword [esi + 0x24], ecx
xor edx, edx
mov ecx, dword [esi + 8]
cmp ecx, dword [esi + 0xc]
setne dl
jmp dword [edx*4 + 0x444b80]
cmp dword [esi + 0x14], 0x22
setne byte [esi + 0x10]
mov edx, dword [ecx + 4]
mov ebx, edx
shr ebx, 0x1c
xor ebx, dword [esi + 0x1c]
shl edx, 4
or edx, 1
xor edx, dword [esi + 4]
or edx, ebx
sete dl
and dl, byte [esi + 0x10]
movzx edx, dl
jmp dword [edx*4 + 0x444b88]
mov edx, 1
jmp case.0x42309b.70
mov edi, dword [ecx]
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [edx*4 + 0x444ba0]
jmp dword [esi + 0x24]
add ecx, 8
nop
add ecx, 8
jmp dword [0x444bb4]
xor edx, edx
cmp ecx, dword [esi + 0xc]
setne dl
jmp dword [edx*4 + 0x444b80]
mov eax, dword [case.0x422b12.32]
nop
nop
nop
jmp eax
xor eax, eax
test edi, edi
setne al
mov ecx, dword [esi + 0x30]
jmp dword [eax*4 + 0x444bc8]
mov eax, dword [esi + 0xbc]
mov dword [eax], ecx
mov ecx, dword [esi + 0x20]
mov dword [eax + 4], ecx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x423376
mov ecx, dword [esi + 0xb8]
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov ebx, dword [esi + 0x4c]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x932a8d34
push dword [0x44ac34]
call fcn.0043ab20
add esp, 8
push ebx
push 1
push 0
push 0
push dword [esi + 0xb8]
push 0
push dword [esi + 0xbc]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444bd0]
jmp case.0x422b12.34
dec edi
mov byte [esi + 0x1c], 1
cmp cl, 0x30
je 0x423145
jmp 0x423155
mov eax, dword [esi + 0x34]
mov ecx, dword [eax]
movzx eax, byte [edi]
test al, al
je 0x4233bb
inc edi
nop
nop
nop
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 0x4233b0
mov byte [ecx], 0x3a
lea eax, [ecx + 2]
mov edx, dword [esi + 0x34]
mov dword [edx], eax
mov byte [ecx + 1], 0x20
mov edi, dword [esi + 0x4c]
mov edx, dword [edi]
test edx, edx
je 0x423400
mov ecx, dword [edi + 4]
mov edi, edx
and edi, 3
je 0x423404
mov dword [esi + 4], 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 0x4233e2
mov edi, dword [esi + 4]
mov edx, edi
sub edx, ebx
add eax, ebx
mov ebx, eax
jmp 0x423406
mov ebx, eax
jmp 0x423447
mov edi, edx
cmp edi, 4
mov edi, dword [esi + 0x4c]
jb 0x423447
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 0x42340e
lea eax, [ebx + 1]
mov ecx, dword [esi + 0x34]
mov dword [ecx], eax
mov byte [ebx], 0xa
mov eax, dword [esi + 0x40]
mov byte [eax], 1
push 0x2e0ec9bb
push dword [0x44ac20]
call fcn.0043ab20
add esp, 8
push dword [edi + 4]
call eax
mov eax, dword [case.0x422b12.41]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0xc4]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444be8]
push eax
call fcn.00408eb0
add esp, 4
mov ecx, dword [esi + 0x38]
mov eax, dword [ecx]
add eax, 4
mov eax, dword [eax]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [esi + 0x2c]
jmp dword [ecx*4 + 0x444b48]
mov ecx, dword [esi + 0x38]
mov eax, dword [ecx]
add eax, 4
mov eax, dword [eax]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [esi + 0x2c]
jmp dword [ecx*4 + 0x444b48]
mov edi, dword [edx]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444bf0]
mov ecx, edi
call fcn.00424df0
push edi
call fcn.00408eb0
add esp, 4
mov eax, dword [case.0x422996.61]
jmp eax
mov eax, dword [esi + 0xc0]
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
sete al
mov ebx, dword [esi + 0x54]
jmp dword [eax*4 + 0x444c08]
push ecx
call fcn.00408eb0
add esp, 4
mov eax, dword [ebx]
mov dword [esi + 0x60], 0x70716e6f
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x6b], 0
mov dword [esi + 0x18], 0
mov ecx, dword [esi + 0x18]
cmp ecx, 0xe
ja 0x423593
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x18]
movzx edx, byte [esi + edx + 0x60]
lea edi, [ecx + 0x56918c0e]
add ecx, 0xe
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi], edi
mov ecx, dword [esi]
add cl, 0x9e
mov edx, dword [esi + 0x18]
mov byte [esi + edx + 0x60], cl
inc dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
cmp ecx, 0xf
jb 0x423560
mov ecx, dword [0x44ac28]
test ecx, ecx
je case.default.0x423750
mov edx, dword [esi + 0x60]
xor edi, edi
mov ebx, dword [0x44ac2c]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x4235c0
inc edi
cmp ecx, edi
jne 0x4235b0
jmp case.default.0x423750
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x423732
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444c10]
push eax
call fcn.00408eb0
add esp, 4
mov eax, dword [case.0x423750.5]
mov edi, dword [esi + 0x44]
jmp eax
mov eax, dword [esi + 0x40]
movzx eax, byte [eax]
jmp dword [eax*4 + 0x444c28]
mov dword [esi + 4], eax
jmp 0x4236af
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
mov byte [eax], 0
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx]
sub eax, edx
mov dword [edi], 0xbfbabded
mov dword [edi + 4], 0x4b37c6c1
mov dword [edi + 8], 0x4c40463d
mov dword [edi + 0xc], 0x32422e03
mov dword [edi + 0x10], 0x2709483d
mov dword [edi + 0x14], 0x552b4e4b
mov dword [edi + 0x18], 0x5b5e175b
mov word [edi + 0x1c], 0xc15c
mov dword [edi + 0x1e], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x21
ja 0x42369a
mov ecx, dword [esi]
mov edi, dword [esi]
mov ebx, dword [esi + 0x44]
movzx edi, byte [ebx + edi]
lea ebx, [ecx + 0x1806aafa]
add ecx, 0xfa
and ecx, edi
or ebx, edi
sub ebx, ecx
mov dword [esi + 0x60], ebx
mov ecx, dword [esi + 0x60]
add cl, 0x2a
mov edi, dword [esi]
mov ebx, dword [esi + 0x44]
mov byte [ebx + edi], cl
mov edi, dword [esi + 0x44]
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x22
jb 0x423660
mov ecx, dword [ebp + 8]
push eax
push edx
push edi
call fcn.00409a50
mov ecx, eax
mov eax, dword [esi + 0x40]
mov dword [esi + 4], ecx
mov byte [eax], cl
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov ecx, dword [case.0x423750.10]
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 8]
jmp ecx
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444c40]
push eax
mov edi, edx
call fcn.00408eb0
mov edx, edi
add esp, 4
cmp byte [esi + 4], 0
setne al
test ebx, ebx
je 0x42372a
cmp ebx, edx
je 0x42372a
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
mov edi, ebx
jmp 0x423704
cmp edi, edx
je 0x42371c
mov eax, dword [edi]
add edi, 8
test eax, eax
je 0x423700
push eax
mov ebx, edx
call fcn.00408eb0
mov edx, ebx
add esp, 4
jmp 0x423700
push dword [esi + 8]
call fcn.00408eb0
add esp, 4
mov eax, dword [esi + 4]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
push 1
push dword [0x44ac30]
push ecx
call fcn.00438a60
add esp, 0x10
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444c10]