Function at 0x423da4
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], 0x1b9619eb
mov dword [esp + 0x64], 0x17f715e9
mov dword [esp + 0x68], 0x132411e5
mov dword [esp + 0x6c], 0x2fa62dd1
mov dword [esp + 0x70], 0x2b2a29d5
mov dword [esp + 0x74], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0x17
ja 0x422ce2
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + ecx + 0x60]
lea esi, [eax - 0x57a41fac]
lea ecx, [eax + edx]
add ecx, 0xa85be054
add eax, 0x54
or eax, esi
and esi, edx
and eax, edx
add eax, esi
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0xb4
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0x18
jb 0x422c90
lea edi, [esp + 0x60]
lea ecx, [esp + 0x48]
push edi
call fcn.00438d10
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x444874]
lea ecx, [esp + 0x48]
push 0x410
call fcn.00438f70
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44487c]
jmp dword [0x444888]
mov dword [esp + 0x60], 0x224b3421
mov dword [esp + 0x64], 0x2c224124
mov dword [esp + 0x68], 0x3821235d
mov dword [esp + 0x6c], 0x472e2659
mov dword [esp + 0x70], 0x24535246
mov dword [esp + 0x74], 0xcfb05651
mov dword [esp + 0x78], 0xcacdaeca
mov dword [esp + 0x7c], 0xc6afc8b3
mov dword [esp + 0x80], 0xa6b4b6b2
mov dword [esp + 0x84], 0xdebb99b5
mov dword [esp + 0x88], 0x7382bdbd
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov byte [esp + 0x94], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x34
ja 0x422df1
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0x183e8d6a]
add eax, 0x6a
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
mov ecx, eax
xor ecx, 0x19
and eax, 0x19
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x35
jb 0x422db0
lea eax, [esp + 0x60]
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x48]
push 0
push 0x2b
push eax
push edx
call fcn.00439500
mov dword [esp + 0x60], 0x224b3421
mov dword [esp + 0x64], 0x2c224124
mov dword [esp + 0x68], 0x3821235d
mov dword [esp + 0x6c], 0x472e2659
mov dword [esp + 0x70], 0x24535246
mov dword [esp + 0x74], 0xcfb05651
mov dword [esp + 0x78], 0xcacdaeca
mov dword [esp + 0x7c], 0xc6afc8b3
mov dword [esp + 0x80], 0xa6b4b6b2
mov dword [esp + 0x84], 0xdebb99b5
mov dword [esp + 0x88], 0x7382bdbd
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov byte [esp + 0x94], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x34
ja 0x422ee1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0x183e8d6a]
add eax, 0x6a
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
mov ecx, eax
xor ecx, 0x19
and eax, 0x19
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x35
jb 0x422ea0
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x48]
push 0
push 0x2b
push edi
push eax
call fcn.00439500
jmp dword [0x44488c]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
xor eax, eax
cmp esi, ecx
sete al
xor ebx, ebx
jmp dword [eax*4 + 0x444894]
mov eax, ecx
sub eax, esi
sar eax, 2
imul eax, eax, 0x421
push eax
mov ebx, ecx
call fcn.00409230
add esp, 4
mov dword [esp + 0x44], 0
xor ecx, ecx
mov dword [esp + 0x5c], ebx
cmp esi, ebx
setne cl
mov dword [esp + 0x54], eax
mov dword [esp + 0xc], eax
jmp dword [ecx*4 + 0x44489c]
mov eax, dword [esp + 0x44]
mov ecx, eax
and cl, 1
movzx ecx, cl
mov edi, dword [esp + 0x54]
mov ebx, dword [ebp + 8]
jmp dword [ecx*4 + 0x444914]
jmp dword [0x444920]
add esi, 4
xor eax, eax
cmp esi, dword [esp + 0x5c]
setne al
jmp dword [eax*4 + 0x44489c]
mov ebx, esi
mov esi, dword [esi]
push 0x400
push 0
push edi
call fcn.004093e0
add esp, 0xc
lea eax, [esp + 0x28]
lea ecx, [esp + 0x48]
push eax
push 0x400
push edi
push esi
call fcn.00439390
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
jmp dword [ecx*4 + 0x4448a4]
xor eax, eax
cmp dword [esp + 0x28], 0
sete al
jmp dword [eax*4 + 0x4448ac]
mov eax, 1
mov esi, ebx
jmp dword [eax*4 + 0x4448b4]
xor eax, eax
mov esi, ebx
jmp dword [eax*4 + 0x4448b4]
jmp dword [0x4448c4]
mov byte [esp + 0x45f], 0
movzx ecx, byte [esp + 0x60]
xor eax, eax
test cl, cl
je 0x422ff0
mov edx, edi
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x423020
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x423010
jmp 0x422ff0
mov eax, edx
jmp dword [0x4448c4]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4448cc]
lea edx, [eax + 1]
movzx ecx, byte [edx]
xor edi, edi
test cl, cl
mov ebx, edx
mov dword [esp + 8], edx
je 0x423062
nop
nop
nop
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x423060
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x423050
jmp 0x423062
mov edi, edx
xor ecx, ecx
test edi, edi
setne cl
jmp dword [ecx*4 + 0x4448d4]
mov ecx, edi
sub ecx, dword [esp + 8]
lea edx, [ecx + ecx*2]
shr edx, 2
movzx eax, byte [eax + ecx]
cmp eax, 0x3d
je 0x42308a
cmp eax, 0x2e
jne 0x42308b
dec edx
mov eax, dword [esp + 8]
movzx eax, byte [ecx + eax - 2]
cmp eax, 0x3d
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], esi
je 0x4230a6
cmp eax, 0x2e
jne 0x4230a7
dec edx
mov eax, edx
and eax, 1
mov ecx, edx
mov dword [esp + 0x58], edx
xor ecx, 1
lea eax, [ecx + eax*2]
push eax
call fcn.00409230
add esp, 4
mov dword [esp + 0x14], eax
cmp edi, dword [esp + 8]
je 0x4231c7
xor ebx, ebx
mov edi, 2
jmp 0x4230f2
mov edx, dword [esp + 0x10]
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
mov ebx, edx
cmp edi, ecx
mov edi, eax
jae 0x4231c7
mov esi, dword [esp + 8]
movzx eax, byte [esi + edi - 2]
push eax
call fcn.00419940
add esp, 4
mov byte [esp + 0x18], al
movzx eax, byte [esi + edi - 1]
push eax
call fcn.00419940
add esp, 4
movzx ecx, byte [esp + 0x18]
shl cl, 2
mov edx, eax
shr dl, 4
and dl, 3
or dl, cl
mov ecx, dword [esp + 0x14]
mov byte [ecx + ebx], dl
lea edx, [ebx + 1]
mov ecx, dword [esp + 0x40]
cmp edi, ecx
jae 0x4230e0
mov byte [esp + 0x10], al
mov dword [esp + 0x18], ebx
movzx eax, byte [esi + edi]
push eax
mov esi, edx
call fcn.00419940
mov edx, esi
mov ecx, dword [esp + 0x44]
add esp, 4
cmp al, 0x40
je 0x4230e0
mov ebx, eax
movzx edx, byte [esp + 0x10]
shl dl, 4
shr al, 2
and al, 0xf
or al, dl
mov esi, dword [esp + 0x18]
lea edx, [esi + 2]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
mov byte [edx + esi + 1], al
lea eax, [edi + 1]
cmp eax, ecx
jae 0x4230d8
mov eax, dword [esp + 8]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00419940
mov ecx, dword [esp + 0x44]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x10]
je 0x4230e0
shl bl, 6
add al, bl
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov byte [edx + esi + 2], al
add esi, 3
mov edx, esi
jmp 0x4230e0
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x14]
mov byte [esi + eax], 0
push esi
call fcn.00401e80
add esp, 4
mov ebx, eax
jmp dword [0x4448dc]
push esi
call fcn.00409240
add esp, 4
push ebx
call fcn.00402940
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4448e4]
mov esi, dword [esp + 0x3c]
jmp 0x423309
mov dword [esp + 0x28], 0x1b78948b
lea ecx, [esp + 0x2c]
mov word [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xd
mov edi, dword [esp + 0xc]
ja 0x42328f
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 + 0x28]
lea esi, [ecx - 0x65a1827c]
and esi, edx
add ecx, edx
add ecx, 0x9a5e7d84
add esi, esi
sub ecx, esi
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x64
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xe
jb 0x423250
lea ecx, [esp + 0x28]
push ecx
push eax
call fcn.004026e0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4448ec]
movzx ecx, byte [eax]
test cl, cl
je 0x4232cb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4232c0
mov word [edi], 0x203a
add edi, 2
mov esi, dword [esp + 0x3c]
movzx eax, byte [esp + 0x60]
test al, al
je 0x4232fb
lea ecx, [esp + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4232f0
mov byte [edi], 0xa
inc edi
mov dword [esp + 0xc], edi
mov al, 1
mov dword [esp + 0x44], eax
push ebx
call fcn.00402f10
add esp, 4
mov eax, dword [case.0x422cf5.16]
lea edi, [esp + 0x60]
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 0xc]
mov byte [eax], 0
sub eax, edi
mov dword [esp + 0x60], 0xb7b0b185
mov dword [esp + 0x64], 0xd3bfa0b9
mov dword [esp + 0x68], 0xd6aea8a5
mov dword [esp + 0x6c], 0xa8d8b86b
mov dword [esp + 0x70], 0xbf61a6b5
mov dword [esp + 0x74], 0x999398a3
mov dword [esp + 0x78], 0xe3e45fe3
mov dword [esp + 0x7c], 0x65e6
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x1f
ja 0x4233ba
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x60]
lea esi, [ecx - 0x6117b375]
add ecx, 0x8b
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0x28]
add cl, 0x33
mov edx, dword [esp]
mov byte [esp + edx + 0x60], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x20
jb 0x423380
lea edx, [esp + 0x60]
mov ecx, ebx
push eax
push edi
push edx
call fcn.00409de0
mov eax, dword [esp + 0xc]
mov byte [eax], 0
sub eax, edi
mov dword [esp + 0x60], 0xb7b0b185
mov dword [esp + 0x64], 0xd3bfa0b9
mov dword [esp + 0x68], 0xd6aea8a5
mov dword [esp + 0x6c], 0xa8d8b86b
mov dword [esp + 0x70], 0xbf61a6b5
mov dword [esp + 0x74], 0x999398a3
mov dword [esp + 0x78], 0xe3e45fe3
mov dword [esp + 0x7c], 0x65e6
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x1f
ja 0x42345a
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x60]
lea esi, [ecx - 0x6117b375]
add ecx, 0x8b
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0x28]
add cl, 0x33
mov edx, dword [esp]
mov byte [esp + edx + 0x60], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x20
jb 0x423420
lea edx, [esp + 0x60]
mov ecx, ebx
push eax
push edi
push edx
call fcn.00409de0
jmp dword [0x444924]
mov ecx, dword [case.0x423069.25]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
jmp dword [0x44493c]
push edi
mov esi, eax
call fcn.00409240
mov eax, esi
add esp, 4
mov ecx, dword [case.0x422cf5.9]
and al, 1
mov ebx, eax
nop
jmp ecx
mov eax, dword [esp + 0x1c]
test eax, eax
je case.0x422cf5.1
cmp eax, dword [esp + 0x20]
je case.0x422cf5.1
push eax
call fcn.00409240
add esp, 4
lea ecx, [esp + 0x48]
call fcn.004390a0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
jmp dword [0x444964]
xor eax, eax
cmp dword [esi + 4], 0
sete al
jmp dword [eax*4 + 0x444a04]
mov dword [esi + 0x38], 0xb3d1b1dc
mov dword [esi + 0x3c], 0xb7c8b5cb
mov dword [esi + 0x40], 0xcbb3c9ae
mov dword [esi + 0x44], 0xcfa2cdab
mov dword [esi + 0x48], 0xc3bdc1a3
mov dword [esi + 0x4c], 0xc7a0c5ba
mov dword [esi + 0x50], 0xdbbdd9a1
mov dword [esi + 0x54], 0xdfa8dde2
mov dword [esi + 0x58], 0xd3b4d1b4
lea eax, [esi + 0x5c]
mov word [esi + 0x5c], 0xd5d4
mov dword [esi + 0x5e], 0
mov dword [esi + 0x61], 0
mov dword [esi + 0xb0], 0
mov ecx, dword [esi + 0xb0]
cmp ecx, 0x2c
ja 0x423630
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0xb0]
mov edx, dword [esi + 0xb0]
movzx edx, byte [esi + edx + 0x38]
lea edi, [ecx + edx]
add edi, 0xcedbe138
add ecx, 0xcedbe138
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 0xe8], edi
mov ecx, dword [esi + 0xe8]
add cl, 0x78
mov edx, dword [esi + 0xb0]
mov byte [esi + edx + 0x38], cl
inc dword [esi + 0xb0]
mov ecx, dword [esi + 0xb0]
cmp ecx, 0x2d
jb 0x4235e0
lea edi, [esi + 0xb0]
lea edx, [esi + 0x38]
mov dword [esi + 0xa0], edx
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 0xd4]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
mov ecx, dword [esi + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x423670
cmp eax, 0xffffffd9
jge 0x423a91
mov eax, 0xffffffff
jmp 0x423a94
xor edx, edx
test edi, edi
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x4449fc]
jmp dword [ecx*4 + 0x444954]
mov dword [esi + 0x38], 0x23742d40
mov dword [esi + 0x3c], 0x277d2165
mov dword [esi + 0x40], 0x3b6d257d
mov dword [esi + 0x44], 0x3f68396c
mov dword [esi + 0x48], 0x335e3d55
mov dword [esi + 0x4c], 0x3777316d
mov dword [esi + 0x50], 0x4b123573
mov dword [esi + 0x54], 0x4f1c4911
mov dword [esi + 0x58], 0x432e4d09
mov dword [esi + 0x5c], 0x47154117
mov dword [esi + 0x60], 0x5b0e451e
mov dword [esi + 0x64], 0x5f1f5933
mov dword [esi + 0x68], 0x53175d0a
mov dword [esi + 0x6c], 0x573c513c
mov dword [esi + 0x70], 0x6b165535
mov dword [esi + 0x74], 0x6f0b69e2
mov dword [esi + 0x78], 0x63356d00
mov dword [esi + 0x7c], 0x67036114
mov dword [esi + 0x80], 0x7b076505
mov word [esi + 0x84], 0x7978
mov dword [esi + 0x86], 0
mov dword [esi + 0xb0], 0
mov ecx, dword [esi + 0xb0]
cmp ecx, 0x51
ja 0x4237b0
nop
nop
nop
nop
mov ecx, dword [esi + 0xb0]
mov edx, dword [esi + 0xb0]
movzx edi, byte [esi + edx + 0x38]
lea edx, [ecx + edi]
add ecx, 0xa6
and ecx, edi
add ecx, ecx
sub edx, ecx
add edx, 0xa8fc92a6
mov dword [esi + 0xe8], edx
mov ecx, dword [esi + 0xe8]
add cl, 0x76
mov edx, dword [esi + 0xb0]
mov byte [esi + edx + 0x38], cl
inc dword [esi + 0xb0]
mov ecx, dword [esi + 0xb0]
cmp ecx, 0x52
jb 0x423760
mov ecx, esi
lea edx, [esi + 0x38]
push 0
push 0
push eax
push ecx
push edx
call fcn.0043d040
add esp, 0x14
mov ecx, dword [case.0x423069.41]
nop
nop
nop
nop
nop
nop
jmp ecx
shr eax, 0x1f
jmp dword [eax*4 + 0x44497c]
lea ebx, [esi + 0x2c]
lea eax, [esi + 0xc]
push ebx
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esi]
call fcn.0043d4b0
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444984]
mov eax, dword [esi + 0x2c]
mov ecx, eax
and ecx, 1
xor eax, 1
lea ecx, [eax + ecx*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x423820
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov edi, eax
mov dword [esi + 0x38], 0x9b2c99d1
mov dword [esi + 0x3c], 0xe75ae557
mov dword [esi + 0x40], 0xe356e141
mov dword [esi + 0x44], 0xefbeed58
mov dword [esi + 0x48], 0xeb56e949
mov dword [esi + 0x4c], 0xf7f6f55c
mov byte [esi + 0x50], 0
mov dword [esi + 0xb0], 0
mov eax, dword [esi + 0xb0]
cmp eax, 0x18
ja 0x4238c8
nop
nop
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0xb0]
movzx edx, byte [esi + ecx + 0x38]
lea ecx, [eax + edx]
add ecx, 0xce420dbc
add eax, 0xbc
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0xe8], eax
mov eax, dword [esi + 0xe8]
add al, 0xdc
mov ecx, dword [esi + 0xb0]
mov byte [esi + ecx + 0x38], al
inc dword [esi + 0xb0]
mov eax, dword [esi + 0xb0]
cmp eax, 0x19
jb 0x423870
push ebx
push edi
push 0
lea eax, [esi + 0x38]
push eax
push dword [esi]
call fcn.0043db20
add esp, 0x14
shr eax, 0x1f
mov dword [esi + 4], edi
jmp dword [eax*4 + 0x44498c]
mov eax, dword [case.0x4238e0.4]
nop
nop
nop
nop
jmp eax
mov dword [esi + 4], 0
jmp dword [0x4449a4]
push edi
call fcn.00409240
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov dword [esi + 0x38], 0xa151417
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0xb0], 0
mov ecx, dword [esi + 0xb0]
cmp ecx, 0xb
ja 0x423997
nop
nop
nop
nop
mov ecx, dword [esi + 0xb0]
mov edx, dword [esi + 0xb0]
movzx edx, byte [esi + edx + 0x38]
lea edi, [ecx + 0xad]
mov ebx, 0x4147ad52
sub ebx, ecx
or ebx, edx
not edx
or edx, edi
add ebx, edx
mov ecx, 0xfffffffe
sub ecx, ebx
mov dword [esi + 0xe8], ecx
mov ecx, dword [esi + 0xe8]
add cl, 0x45
mov edx, dword [esi + 0xb0]
mov byte [esi + edx + 0x38], cl
inc dword [esi + 0xb0]
mov ecx, dword [esi + 0xb0]
cmp ecx, 0xc
jb 0x423940
mov ecx, dword [0x448630]
test ecx, ecx
je case.default.0x4239fe
mov edx, dword [esi + 0x38]
xor edi, edi
mov ebx, dword [0x448634]
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x4239d4
inc edi
cmp ecx, edi
jne 0x4239b0
jmp case.default.0x4239fe
mov edi, 4
xor eax, eax
cmp edi, 4
setb al
jmp dword [eax*4 + 0x4449ec]
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.default.0x4239fe
push eax
push 1
push dword [0x448638]
push ecx
call fcn.0043a550
add esp, 0x10
nop
nop
xor eax, eax
cmp dword [esi + 4], 0
setne al
mov edi, 2
jmp dword [eax*4 + 0x4449ac]
lea eax, [esi + 0x38]
push eax
call fcn.0043c600
add esp, 4
movzx edx, al
xor ecx, ecx
mov eax, 1
jmp dword [edx*4 + 0x4449b4]
jmp dword [0x4449c4]
mov edx, dword [esi + 0x38]
mov ebx, dword [case.0x4239fe.10]
nop
jmp ebx
xor ebx, ebx
cmp edx, 1
sete bl
jmp dword [ebx*4 + 0x4449dc]
mov edi, ecx
jmp dword [eax*4 + 0x4449e4]
xor edi, edi
xor eax, eax
cmp edi, 4
setb al
jmp dword [eax*4 + 0x4449ec]
xor edx, edx
cmp edi, 4
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x4449f4]
xor eax, eax
jmp dword [eax*4 + 0x4449e4]
xor eax, eax
jmp 0x424866
add eax, 0x26
push eax
call fcn.00409230
add esp, 4
mov edi, eax
mov eax, dword [esi + 4]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x423ad1
mov eax, dword [esi + 4]
lea edx, [eax + 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 0x423ac0
mov word [eax], 0
movzx ecx, word [esi + 0xb0]
test cx, cx
je 0x423b01
lea edx, [esi + 0xb2]
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 0x423af0
mov word [eax], 0
jmp dword [0x444a0c]
push dword [esi + 4]
call fcn.00409240
add esp, 4
lea eax, [esi + 0xc]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.0043c830
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esi + 0x98], edi
jmp dword [eax*4 + 0x444a14]
xor edi, edi
xor ebx, ebx
jmp dword [0x444aa4]
push dword [esi + 0x98]
call fcn.00409240
add esp, 4
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x444aac]
xor eax, eax
test edi, edi
jne 0x424831
jmp 0x424866
lea eax, [esi + 0x2c]
push 0
push eax
push dword [esi + 0xc]
call fcn.0043cb90
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esi + 8], 0
xor edi, edi
jmp dword [eax*4 + 0x444a1c]
mov edi, dword [esi + 0x2c]
lea eax, [edi + 1]
push eax
call fcn.00409230
add esp, 4
mov ebx, eax
mov dword [esi + 0x90], eax
jmp dword [0x444a24]
push 0
push edi
push ebx
push dword [esi + 0xc]
call fcn.0043cc90
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push 0
push edi
push ebx
push dword [esi + 0xc]
call fcn.0043cc90
add esp, 0x10
jmp dword [0x444a30]
not eax
shr eax, 0x1f
xor edx, edx
xor edi, edi
jmp dword [eax*4 + 0x444a34]
jmp dword [0x444a48]
mov edi, dword [esi + 0x2c]
mov byte [ebx + edi], 0
push 0x20
call fcn.00409230
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 + 0x9c], eax
mov ecx, eax
push edi
push ebx
call fcn.00425e90
movzx eax, al
xor edx, edx
mov dword [esi + 0x10], 0
jmp dword [eax*4 + 0x444a4c]
mov dword [esi + 0x38], 0x67985ebb
mov dword [esi + 0x3c], 0x9260906b
mov dword [esi + 0x40], 0x979b8fa7
mov dword [esi + 0x44], 0x88ad9c62
mov dword [esi + 0x48], 0x8e839868
mov dword [esi + 0x4c], 0x8081a0b3
mov dword [esi + 0x50], 0x7f787077
mov word [esi + 0x54], 0xe97f
mov dword [esi + 0x5a], 0
mov dword [esi + 0x56], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x25
ja 0x423cfa
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 + 0x38]
lea edx, [eax + ecx]
add edx, 0x2809ffde
add eax, 0x2809ffde
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0xe8], edx
mov eax, dword [esi + 0xe8]
add al, 0xee
mov ecx, dword [esi]
mov byte [esi + ecx + 0x38], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x26
jb 0x423cc0
mov ecx, dword [esi + 0x9c]
lea eax, [esi + 0x38]
push eax
call fcn.00426080
xor ecx, ecx
test eax, eax
setne cl
mov dword [esi + 0x10], 0
xor edx, edx
jmp dword [ecx*4 + 0x444a54]
mov ecx, dword [eax + 8]
mov dword [esi + 0x10], 0
xor eax, eax
test ecx, ecx
setne al
xor edx, edx
xor edi, edi
mov dword [esi + 4], 0
jmp dword [eax*4 + 0x444a5c]
jmp dword [0x444a7c]
mov edi, dword [esi + 0x10]
jmp dword [0x444a84]
mov dword [esi + 8], edx
mov ecx, dword [esi + 0x9c]
call fcn.004261f0
push dword [esi + 0x9c]
call fcn.00409240
add esp, 4
jmp dword [0x444a8c]
xor eax, eax
test ecx, ecx
setne al
mov ebx, dword [esi + 0x90]
jmp dword [eax*4 + 0x444a5c]
mov dword [esi + 0x28], ecx
mov eax, dword [ecx]
mov dword [esi + 0x1c], eax
mov eax, edx
sub eax, edi
sar eax, 3
cmp edx, dword [esi + 4]
je 0x423dc5
mov dword [esi + 0x24], edx
mov dword [esi + 0x10], edi
mov ebx, eax
jmp 0x423e46
mov dword [esi + 8], edx
mov ecx, eax
inc eax
mov ebx, ecx
shr ebx, 1
mov dword [esi + 0x14], ecx
add ebx, ecx
cmp ebx, eax
ja 0x423dda
mov ebx, eax
lea eax, [ebx*8]
push eax
call fcn.00409230
add esp, 4
mov dword [esi + 0x10], eax
test edi, edi
mov dword [esi + 0x18], ebx
je 0x423e2e
mov eax, dword [esi + 4]
cmp edi, eax
je 0x423e25
xor eax, eax
mov edx, dword [esi + 0x10]
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 + 4]
jne 0x423e00
mov eax, edi
push eax
call fcn.00409240
add esp, 4
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
lea ecx, [eax + ebx*8]
mov dword [esi + 0x24], ecx
mov ecx, dword [esi + 0x18]
lea eax, [eax + ecx*8]
mov dword [esi + 4], eax
mov eax, edi
xor eax, edx
mov ecx, edi
not ecx
and ecx, edx
add ecx, ecx
sub ecx, eax
sar ecx, 3
cmp ecx, ebx
mov dword [esi + 0x14], ecx
jae 0x423f10
lea eax, [edi + ebx*8]
mov ebx, edx
mov dword [esi + 0x18], eax
mov edx, eax
sub edx, ebx
mov edi, ecx
mov ecx, dword [esi + 0x10]
lea eax, [ecx + edi*8]
lea edi, [ecx + edi*8]
add edi, 8
mov dword [esi + 8], eax
lea ecx, [eax + edx]
cmp ecx, edi
jbe 0x423ea4
cmp dword [esi + 0x18], ebx
mov ecx, dword [esi + 0x14]
je 0x423f10
push edx
push dword [esi + 8]
push edi
call fcn.004092c0
mov ecx, dword [esi + 0x14]
add esp, 0xc
jmp 0x423f10
mov eax, edx
xor eax, 3
mov ecx, edx
or ecx, 0xfffffffc
and ecx, eax
mov dword [esi + 0x20], ecx
mov ecx, edx
shr ecx, 2
mov ebx, edx
and ebx, 0xfffffffc
add ebx, edi
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
mov ebx, dword [esi + 0x20]
add ebx, dword [esi + 8]
mov ecx, edx
not ecx
or ecx, 3
add edx, ecx
inc edx
mov ecx, edx
shr ecx, 1
mov edi, ebx
mov dword [esi + 8], ebx
mov dword [esi + 0x18], eax
mov edi, eax
mov eax, dword [esi + 8]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test dl, 1
mov ecx, dword [esi + 0x14]
je 0x423f10
and edx, 0xfffffffe
movzx ecx, byte [ebx + edx]
mov eax, dword [esi + 0x18]
mov byte [eax + edx], cl
mov ecx, dword [esi + 0x14]
nop
nop
nop
nop
mov eax, dword [esi + 0x10]
mov dword [eax + ecx*8], 0
mov dword [esi + 0x10], eax
mov dword [eax + ecx*8 + 4], 0
xor edi, edi
mov eax, dword [esi + 0x1c]
nop
nop
nop
nop
nop
nop
mov ebx, edi
inc edi
cmp byte [eax + ebx], 0
jne 0x423f30
lea ecx, [edi - 1]
mov dword [esi + 0x20], ecx
push edi
mov dword [esi + 8], edi
call fcn.00409230
add esp, 4
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
mov dword [edx + ecx*8], eax
mov ecx, edi
shr ecx, 2
mov edx, dword [esi + 0x1c]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, dword [esi + 8]
mov edx, ecx
and edx, 0xfffffffc
add eax, edx
add edx, dword [esi + 0x1c]
shr ecx, 1
and ecx, 1
mov edi, edx
mov dword [esi + 0x18], edx
mov dword [esi + 0x94], eax
mov edi, eax
mov eax, dword [esi + 0x18]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [esi + 8]
mov edi, ecx
test cl, 1
je 0x423fa7
mov ecx, edi
and ecx, 2
movzx edx, byte [edx + ecx]
mov eax, dword [esi + 0x94]
mov byte [eax + ecx], dl
xor eax, eax
mov edx, edi
cmp edi, 1
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x28]
je 0x42402c
mov eax, 0xffffffff
cmp edx, 2
jne 0x423fcb
mov edx, dword [esi + 0x1c]
test byte [esi + 0x20], 1
jne 0x424014
jmp 0x42402a
and ebx, 0xfffffffe
mov edx, dword [esi + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
shr ecx, 8
xor al, byte [edx]
movzx eax, al
xor ecx, dword [eax*4 + 0x43f7d0]
mov eax, ecx
shr eax, 8
xor cl, byte [edx + 1]
add edx, 2
movzx ecx, cl
xor eax, dword [ecx*4 + 0x43f7d0]
add ebx, 0xfffffffe
jne 0x423fe0
mov ecx, dword [esi + 0x28]
test byte [esi + 0x20], 1
je 0x42402a
mov ecx, eax
shr ecx, 8
xor al, byte [edx]
movzx eax, al
xor ecx, dword [eax*4 + 0x43f7d0]
mov eax, ecx
mov ecx, dword [esi + 0x28]
not eax
mov edx, dword [esi + 0x14]
mov dword [edi + edx*8 + 4], eax
mov edx, dword [esi + 0x24]
add edx, 8
jmp dword [0x444a68]
mov ecx, dword [ecx + 4]
jmp dword [0x444a6c]
mov eax, dword [ecx + 4]
mov ecx, dword [eax + 4]
jmp dword [0x444a6c]
mov dword [esi + 8], edx
jmp dword [0x444a8c]
push ebx
call fcn.00409240
add esp, 4
mov eax, dword [case.0x4239fe.28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esi + 0x10], edi
mov eax, dword [esi + 0xc]
mov dword [esi + 0x38], 0xa151417
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xb
ja 0x4240f3
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [esi + edx + 0x38]
lea edi, [ecx + 0xad]
mov ebx, 0x4147ad52
sub ebx, ecx
or ebx, edx
not edx
or edx, edi
add ebx, edx
mov ecx, 0xfffffffe
sub ecx, ebx
mov dword [esi + 0xe8], ecx
mov ecx, dword [esi + 0xe8]
add cl, 0x45
mov edx, dword [esi]
mov byte [esi + edx + 0x38], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0xc
jb 0x4240b0
mov ecx, dword [0x448630]
test ecx, ecx
je 0x42412c
mov edx, dword [esi + 0x38]
xor edi, edi
mov ebx, dword [0x448634]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x424120
inc edi
cmp ecx, edi
jne 0x424110
jmp 0x42412c
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x42426d
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 8]
jmp dword [0x444aa4]
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x444aac]
mov dword [esi + 8], ebx
mov dword [esi + 0x10], edi
sub ebx, edi
sar ebx, 3
imul eax, ebx, 0x421
push eax
call fcn.00409230
add esp, 4
mov dword [esi + 0x24], eax
mov dword [esi + 0x38], 0x7ba47941
mov dword [esi + 0x3c], 0x7f997d8b
mov dword [esi + 0x40], 0x738c719d
mov dword [esi + 0x44], 0x778475b1
mov dword [esi + 0x48], 0xbcc0986
mov dword [esi + 0x4c], 0xff80de9
mov dword [esi + 0x50], 0x32701ed
mov dword [esi + 0x54], 0x7d105ee
mov dword [esi + 0x58], 0x1bff19f2
mov dword [esi + 0x5c], 0x1fe31df9
mov dword [esi + 0x60], 0x13ec11f2
mov dword [esi + 0x64], 0x17f115e3
mov dword [esi + 0x68], 0x2bd429f5
mov dword [esi + 0x6c], 0x2fda2d14
mov dword [esi + 0x70], 0x23c621ca
lea eax, [esi + 0x74]
mov dword [esi + 0x74], 0x2522
mov byte [esi + 0x78], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x40
ja 0x42422b
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [esi + edx + 0x38]
lea edi, [ecx + 0xaf]
and edi, edx
add ecx, edx
add edi, edi
sub ecx, edi
add ecx, 0x459f03af
mov dword [esi + 0xe8], ecx
mov ecx, dword [esi + 0xe8]
add cl, 0x37
mov edx, dword [esi]
mov byte [esi + edx + 0x38], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x41
jb 0x4241f0
lea ebx, [esi + 0xe8]
mov ecx, 0xf
mov edi, ebx
mov edx, dword [esi + 0xa0]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 0x124]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esi + 0x2c]
push eax
push 0
push 0
push 0x1e
push ebx
push 0
call dword [0x44862c]
jmp dword [0x444ab8]
push eax
push 1
push dword [0x448638]
push ecx
call fcn.0043a550
add esp, 0x10
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 8]
jmp dword [0x444aa4]
mov eax, dword [esi + 0xdc]
mov dword [eax], ebx
mov ecx, dword [esi + 0x34]
mov dword [eax + 4], ecx
mov eax, 0xffffffff
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x4242f9
mov ecx, dword [esi + 0xd8]
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov ebx, dword [esi + 0xa4]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x79955919
push dword [0x44863c]
call fcn.0043bd20
add esp, 8
push ebx
push 1
push 0
push 0
push dword [esi + 0xd8]
push 0
push dword [esi + 0xdc]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444b74]
xor eax, eax
mov ecx, dword [esi + 0x34]
test ecx, ecx
sete al
mov ebx, dword [esi + 0x20]
jmp dword [eax*4 + 0x444b7c]
movzx eax, byte [edi]
test al, al
mov ecx, dword [esi + 0x20]
je 0x42432b
inc edi
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x424320
mov word [ecx], 0x203a
mov eax, ecx
add eax, 2
mov edi, dword [esi + 0xa4]
mov edx, dword [edi]
test edx, edx
je 0x42436e
mov ecx, dword [edi + 4]
mov edi, edx
and edi, 3
je 0x424372
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 0x424350
mov edi, dword [esi + 4]
mov edx, edi
sub edx, ebx
add eax, ebx
mov ebx, eax
jmp 0x424374
mov ebx, eax
jmp 0x4243b8
mov edi, edx
cmp edi, 4
mov edi, dword [esi + 0xa4]
jb 0x4243b8
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 0x42437f
mov byte [ebx], 0xa
inc ebx
push 0xe9520bac
push dword [0x448624]
call fcn.0043bd20
add esp, 8
push dword [edi + 4]
call eax
mov eax, dword [esi + 0xac]
mov ecx, dword [eax]
mov al, 1
mov dword [esi + 0x18], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x444b7c]
mov edi, dword [eax]
cmp dword [eax + 0x18], 3
mov ecx, 0
jne case.default.0x42440a
mov ecx, dword [eax + 0x10]
xor eax, eax
test edi, edi
setne al
mov dword [esi + 4], ecx
jmp dword [eax*4 + 0x444b04]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x444b0c]
mov dword [esi + 0x20], ebx
mov eax, ecx
jmp dword [0x444b14]
mov ebx, edi
mov edi, ecx
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x424430
sub eax, edi
inc eax
shr eax, 1
inc eax
push eax
call fcn.00409230
add esp, 4
mov ecx, dword [esi + 0xac]
mov dword [ecx], eax
mov ecx, edi
mov eax, edi
mov edi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne case.0x4249e3.8
sub ebx, ecx
inc ebx
shr ebx, 1
lea eax, [ebx + 1]
push eax
call fcn.00409230
mov ecx, dword [esi + 4]
add esp, 4
mov edx, eax
mov eax, dword [esi + 0xac]
mov dword [eax], edx
mov eax, ecx
jmp dword [0x444b20]
movsx ecx, byte [ecx]
xor eax, eax
test ecx, ecx
setne al
mov dword [esi + 0x34], edx
mov dword [esi + 0x14], edi
jmp dword [eax*4 + 0x444b24]
inc edi
mov edx, dword [esi + 0x1c]
mov byte [edx], cl
inc edx
mov dword [esi + 4], edi
movsx ecx, byte [edi]
xor eax, eax
test ecx, ecx
setne al
mov edi, dword [esi + 0x14]
jmp dword [eax*4 + 0x444b24]
mov dword [esi + 0x1c], edx
mov eax, ecx
or eax, 0x20
lea edx, [eax - 0x61]
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0x4244e3
mov cl, 0xff
cmp edx, 6
jae case.default.0x4244fa
add al, 0xa9
mov ecx, eax
mov edi, dword [esi + 4]
movsx edx, byte [edi + 1]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x444b2c]
mov eax, edx
or eax, 0x20
lea edi, [eax - 0x61]
mov dword [esi + 0x28], edi
add edx, 0xffffffd0
cmp edx, 0xa
jb 0x424516
mov dl, 0xff
mov edi, dword [esi + 0x14]
shl cl, 4
add dword [esi + 4], 2
cmp dword [esi + 0x28], 6
jae case.default.0x42453f
add al, 0xa9
mov edx, eax
or cl, dl
mov edx, dword [esi + 0x1c]
mov byte [edx], cl
inc edx
mov eax, dword [esi + 4]
movsx ecx, byte [eax]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x444b24]
mov byte [edx], 0
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 0x424550
cmp ecx, 0x20
je 0x424550
movzx ecx, al
cmp ecx, 0x2b
je 0x424572
cmp ecx, 0x2d
jne 0x4245a2
cmp al, 0x2b
sete byte [esi + 0x98]
movzx eax, byte [edi]
cmp al, 0x30
jne 0x4245ae
mov dword [esi + 0x94], ebx
movsx eax, byte [edi + 1]
mov ecx, eax
not ecx
or ecx, 0xffffffdf
add ecx, eax
xor eax, eax
cmp ecx, 0x57
sete al
lea edi, [edi + eax*2]
jmp 0x4245b4
dec edi
mov byte [esi + 0x98], 1
cmp al, 0x30
je 0x424582
mov dword [esi + 0x94], ebx
mov dword [esi + 0x1c], 0
mov dword [esi + 4], 0
xor ecx, ecx
jmp 0x4245f2
mov dword [esi + 0x14], 0
xor ebx, ebx
mov edx, 0xffffffff
mov eax, 0xffffffff
mov dword [esi + 0x28], 0x22
mov ecx, dword [esi + 0x14]
add ecx, edx
adc ebx, eax
mov eax, dword [esi + 0x28]
mov dword [esi + 0x1c], eax
mov dword [esi + 4], ecx
mov ecx, ebx
mov ebx, ecx
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x28], eax
movsx eax, byte [edi]
lea edx, [eax - 0x30]
mov dword [esi + 0x14], edx
cmp edx, 0xa
jb 0x424635
mov dword [esi + 4], ecx
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x19
ja 0x4246bb
or al, 0x20
cmp al, 0x66
jg 0x4246bb
movsx eax, al
add eax, 0xffffffa9
mov dword [esi + 0x14], eax
mov ecx, dword [esi + 4]
inc edi
mov eax, ecx
and eax, ebx
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0x1c], 0x22
mov edx, ebx
mov ebx, ecx
mov ecx, 0xffffffff
cmp eax, 0xffffffff
je 0x4245f2
test edx, 0xf0000000
je 0x424680
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0x1c], 0x22
cmp dword [esi + 0x14], 0
jne 0x4245f2
jmp 0x4245c6
mov eax, ebx
mov ecx, ebx
shld edx, eax, 4
shl ecx, 4
mov eax, dword [esi + 0x14]
mov ebx, eax
sar ebx, 0x1f
add eax, ecx
mov eax, ebx
adc eax, edx
mov dword [esi + 4], 0xffffffff
mov eax, edx
mov edx, ecx
mov ecx, 0xffffffff
mov dword [esi + 0x1c], 0x22
jb 0x4245f2
jmp 0x4245e0
xor edi, edi
mov eax, dword [esi + 4]
neg eax
mov ecx, 0
sbb ecx, ebx
cmp byte [esi + 0x98], 0
jne case.default.0x4246ed
mov dword [esi + 4], eax
mov ebx, ecx
mov dword [esi + 0x14], ebx
xor eax, eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 8]
cmp ecx, edx
setne al
mov ebx, dword [esi + 0x94]
jmp dword [eax*4 + 0x444b34]
mov dword [esi + 8], edx
cmp dword [esi + 0x28], 0x22
setne byte [esi + 0x1c]
mov eax, dword [ecx + 4]
mov edx, eax
shr edx, 0x1c
xor edx, dword [esi + 0x14]
shl eax, 4
or eax, 1
xor eax, dword [esi + 4]
or eax, edx
sete al
and al, byte [esi + 0x1c]
movzx edx, al
mov eax, 1
jmp dword [edx*4 + 0x444b3c]
mov edi, dword [ecx]
xor eax, eax
jmp dword [0x444b4c]
mov edx, dword [esi + 8]
jmp dword [eax*4 + 0x444b54]
add ecx, 8
xor eax, eax
cmp ecx, edx
setne al
jmp dword [eax*4 + 0x444b34]
mov eax, dword [case.0x4249e3.29]
mov dword [esi + 8], edx
nop
nop
nop
jmp eax
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x444b6c]
xor eax, eax
mov ecx, dword [esi + 0x34]
test ecx, ecx
sete al
mov ebx, dword [esi + 0x20]
jmp dword [eax*4 + 0x444b7c]
push ecx
call fcn.00409240
add esp, 4
mov edx, dword [esi + 0xa8]
mov eax, dword [case.0x4249e3.38]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [edx]
add eax, 4
mov eax, dword [eax]
mov dword [edx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444afc]
mov dword [esi + 0x20], ebx
mov eax, dword [case.0x4239fe.80]
mov edx, dword [esi + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
add eax, 8
mov dword [esi + 0x18], 0
mov eax, dword [eax]
mov edx, dword [esi + 0xa8]
mov dword [edx], eax
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x24]
jmp dword [ecx*4 + 0x444afc]
mov ebx, dword [esi + 0x90]
jmp dword [0x444bbc]
jmp dword [0x444c04]
push dword [esi + 0x24]
mov ebx, eax
call fcn.00409240
mov eax, ebx
mov ebx, dword [esi + 8]
add esp, 4
and al, 1
test edi, edi
je 0x424866
cmp edi, ebx
je 0x424866
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], edi
jmp 0x424844
cmp edi, ebx
je 0x424858
mov eax, dword [edi]
add edi, 8
test eax, eax
je 0x424840
push eax
call fcn.00409240
add esp, 4
jmp 0x424840
push dword [esi + 0x10]
call fcn.00409240
add esp, 4
mov eax, dword [esi + 0x18]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0xa0], ebx
not eax
shr eax, 0x1f
mov dword [esi + 0x18], 0
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x20], ecx
jmp dword [eax*4 + 0x444ac4]
push 0
lea eax, [esi + 0xc]
push eax
push dword [esi + 0x30]
call fcn.0043cb90
add esp, 0xc
not eax
shr eax, 0x1f
xor edx, edx
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x20], ecx
jmp dword [eax*4 + 0x444acc]
mov dword [esi + 0x18], edx
mov edi, dword [esi + 0x30]
jmp dword [0x444bc4]
jmp dword [0x444ad8]
mov edi, dword [esi + 0xc]
mov byte [ebx + edi], 0
push 0x20
call fcn.00409230
add esp, 4
mov edx, ebx
mov ebx, 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 + 0xe0]
mov dword [eax], ebx
mov ecx, ebx
push edi
mov dword [esi + 0x90], edx
push edx
call fcn.00425e90
movzx eax, al
xor edx, edx
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x20], ecx
jmp dword [eax*4 + 0x444aec]
mov edi, dword [esi + 0x34]
mov dword [edi], 0x47707e63
mov dword [edi + 4], 0x7a486843
mov dword [edi + 8], 0x77636f37
mov dword [edi + 0xc], 0x702d7c4a
mov dword [edi + 0x10], 0x6e7b6050
mov dword [edi + 0x14], 0x6565062b
mov dword [edi + 0x18], 0x5f6d6866
mov dword [edi + 0x1c], 0x1711700f
mov word [edi + 0x20], 0xad11
mov dword [edi + 0x22], 0
mov dword [edi + 0x25], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x28
ja 0x4249cc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x24c09022
add eax, 0x24c09022
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x38]
add al, 0x12
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x29
jb 0x424990
mov ecx, ebx
push edi
call fcn.00426080
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [esi + 0x24]
mov dword [esi + 0x20], edx
xor edx, edx
jmp dword [ecx*4 + 0x444af4]
mov eax, dword [case.0x4239fe.128]
nop
jmp eax
mov eax, dword [esi + 0xe0]
mov ebx, dword [eax]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x444bb4]
mov ecx, ebx
mov edi, edx
call fcn.004261f0
push ebx
call fcn.00409240
mov edx, edi
add esp, 4
mov ebx, dword [esi + 0x90]
jmp dword [0x444bbc]
mov edi, dword [esi + 0x2c]
lea eax, [edi + edi]
test edi, edi
jns 0x424a37
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov ebx, eax
lea eax, [esi + 0x2c]
push eax
push edi
push ebx
push 0x1e
lea eax, [esi + 0xe8]
push eax
push 0
call dword [0x44862c]
lea eax, [esi + 0x30]
push 0x60
push 3
push 0x120089
push eax
push ebx
call fcn.0043c830
add esp, 0x14
jmp dword [0x444ac0]
mov ebx, dword [esi + 0x2c]
lea eax, [ebx + ebx]
test ebx, ebx
jns 0x424a84
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov edi, eax
lea eax, [esi + 0x2c]
push eax
push ebx
push edi
push 0x1e
lea eax, [esi + 0xe8]
push eax
push 0
call dword [0x44862c]
lea eax, [esi + 0x30]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.0043c830
add esp, 0x14
jmp case.0x423d19.25
mov eax, dword [esi + 0x18]
mov ecx, eax
and cl, 1
movzx edx, cl
mov ebx, dword [esi + 8]
jmp dword [edx*4 + 0x444bdc]
mov edx, dword [case.0x4239fe.149]
mov edi, dword [esi + 0x10]
jmp case.0x4239fe.146
mov ebx, dword [esi + 0x20]
mov byte [ebx], 0
sub ebx, dword [esi + 0x24]
mov edi, dword [esi + 0xe4]
mov dword [edi], 0x47404195
mov dword [edi + 4], 0x437f7079
mov dword [edi + 8], 0x464e4875
mov dword [edi + 0xc], 0x6858788b
mov dword [edi + 0x10], 0x7f915665
mov dword [edi + 0x14], 0x59635853
mov dword [edi + 0x18], 0x53549f53
mov dword [edi + 0x1c], 0x3556
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x1f
ja 0x424b6e
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x63]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x1dcf4e63
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x38]
add al, 0x4b
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x20
jb 0x424b40
mov ecx, dword [ebp + 8]
push ebx
push dword [esi + 0x24]
push edi
call fcn.00409de0
mov edx, dword [case.0x4239fe.149]
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp edx
xor edx, edx
mov eax, dword [esi + 0x24]
mov dword [esi + 0x20], eax
jmp dword [0x444bbc]
mov dword [esi + 0x18], edx
push ebx
call fcn.00409240
add esp, 4
mov edi, dword [esi + 0x30]
jmp dword [0x444bc4]
mov eax, dword [case.0x4239fe.145]
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x444bd4]
push dword [esi + 0xa0]
call fcn.00409240
add esp, 4
mov eax, dword [esi + 0x18]
mov ecx, eax
and cl, 1
movzx edx, cl
mov ebx, dword [esi + 8]
jmp dword [edx*4 + 0x444bdc]
cmp dword [ebx + edx*8], 0xad91fd63
je 0x424c00
inc edx
cmp eax, edx
jne 0x424bf0
jmp case.0x4239fe.134
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je case.0x4239fe.134
push edi
push 1
push dword [0x448638]
push eax
call fcn.0043a550
add esp, 0x10
mov dword [esi + 0x38], 0xa151417
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0xc], 0
mov eax, dword [esi + 0xc]
cmp eax, 0xb
ja 0x424c7f
nop
nop
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
movzx ecx, byte [esi + ecx + 0x38]
lea edx, [eax + 0xad]
mov ebx, 0x4147ad52
sub ebx, eax
or ebx, ecx
not ecx
or ecx, edx
add ebx, ecx
mov eax, 0xfffffffe
sub eax, ebx
mov dword [esi], eax
mov eax, dword [esi]
add al, 0x45
mov ecx, dword [esi + 0xc]
mov byte [esi + ecx + 0x38], al
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
cmp eax, 0xc
jb 0x424c40
mov eax, dword [0x448630]
test eax, eax
je 0x424cca
mov ecx, dword [esi + 0x38]
xor edx, edx
mov ebx, dword [0x448634]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0xad91fd63
je 0x424cb0
inc edx
cmp eax, edx
jne 0x424ca0
jmp 0x424cca
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x424cca
push edi
push 1
push dword [0x448638]
push eax
call fcn.0043a550
add esp, 0x10
jmp dword [0x444bd0]
mov dword [esi + 0x38], 0xa151417
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0xc], 0
mov eax, dword [esi + 0xc]
cmp eax, 0xb
ja 0x424d3f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
movzx ecx, byte [esi + ecx + 0x38]
lea edx, [eax + 0xad]
mov ebx, 0x4147ad52
sub ebx, eax
or ebx, ecx
not ecx
or ecx, edx
add ebx, ecx
mov eax, 0xfffffffe
sub eax, ebx
mov dword [esi], eax
mov eax, dword [esi]
add al, 0x45
mov ecx, dword [esi + 0xc]
mov byte [esi + ecx + 0x38], al
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
cmp eax, 0xc
jb 0x424d00
mov eax, dword [0x448630]
test eax, eax
je case.0x4239fe.134
mov ecx, dword [esi + 0x38]
xor edx, edx
mov ebx, dword [0x448634]
jmp 0x424bf0
mov edi, dword [esi + 0xc]
lea eax, [edi + 1]
push eax
call fcn.00409230
add esp, 4
push 0
push edi
push eax
push dword [esi + 0x30]
call fcn.0043cc90
add esp, 0x10
mov edi, dword [esi + 0xc]
lea eax, [edi + 1]
push eax
call fcn.00409230
add esp, 4
mov ebx, eax
push 0
push edi
push eax
push dword [esi + 0x30]
call fcn.0043cc90
add esp, 0x10
jmp dword [0x444adc]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444ae4]
push dword [esp + 0x48]
push 1
push dword [0x448638]
push eax
call fcn.0043a550
add esp, 0x10
mov edi, dword [esp + 0xb4]
jmp dword [0x444ca4]
mov dword [esp + 0xc4], ecx
mov eax, dword [esp + ecx*4 + 0x114]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + esi + 2], 0
lea esi, [esi + 2]
jne 0x425220
mov dword [esp + 0x6c], eax
mov ebx, esi
sar ebx, 1
mov dword [esp + 0x10], 0x23d421c2
mov dword [esp + 0x14], 0xdf41ddb3
mov dword [esp + 0x18], 0xdb4cd93d
mov dword [esp + 0x1c], 0xd739d5fa
mov dword [esp + 0x20], 0xd333d15a
mov dword [esp + 0x24], 0xcf53cd5e
mov word [esp + 0x28], 0xc9ce
lea eax, [esp + 0x28]
mov dword [eax + 5], 0
mov dword [eax + 2], 0
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x50]
cmp eax, 0x20
ja 0x4252d6
nop
nop
nop
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + ecx]
add eax, 0xfb
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xe23f7fb
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
add al, 0x23
mov ecx, dword [esp + 0x50]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x50]
mov eax, dword [esp + 0x50]
cmp eax, 0x21
jb 0x425290
lea edi, [esp + 0xf8]
lea eax, [esp + 0x10]
mov ecx, 6
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x28]
lea edi, [esp + 0x110]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebx + eax]
lea edx, [ebx + eax]
add edx, 0xd
lea eax, [ecx + ecx]
add eax, 0x1a
test edx, edx
jns 0x42531e
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x74]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x425351
mov edx, dword [esp + 0xb0]
mov eax, edi
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425340
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esp + 0x6c]
movzx ecx, word [edx]
test cx, cx
je 0x425381
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 0x425370
mov word [eax], 0
movzx ecx, word [esp + 0xf8]
test cx, cx
je 0x4253b1
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 0x4253a0
mov dword [esp + 0xc0], ebx
mov word [eax], 0
lea eax, [esp + 0x84]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.0043c830
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444c14]
xor ebx, ebx
jmp dword [0x444ca4]
push edi
call fcn.00409240
add esp, 4
movzx eax, bl
jmp dword [eax*4 + 0x444cac]
lea eax, [esp + 0xb8]
push 0
push eax
push dword [esp + 0x8c]
call fcn.0043cb90
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
mov dword [esp + 0xb4], edi
jmp dword [eax*4 + 0x444c1c]
mov edi, dword [esp + 0xb8]
mov eax, edi
and eax, 1
mov ecx, edi
xor ecx, 1
lea eax, [ecx + eax*2]
push eax
call fcn.00409230
add esp, 4
push 0
push edi
mov edi, eax
push eax
push dword [esp + 0x90]
call fcn.0043cc90
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x444c24]
mov eax, dword [esp + 0xb8]
mov byte [edi + eax], 0
push edi
call fcn.00401e80
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x444c2c]
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], eax
push eax
call fcn.00402940
add esp, 4
mov dword [esp + 0x10], 0xbe81acb7
mov dword [esp + 0x14], 0x938c96b0
mov dword [esp + 0x18], 0x868e86c8
mov dword [esp + 0x1c], 0x9b849e88
mov dword [esp + 0x20], 0x86b18d89
mov dword [esp + 0x24], 0xc868d
mov dword [esp + 0x50], 0
mov ecx, dword [esp + 0x50]
cmp ecx, 0x17
ja 0x425544
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x50]
movzx edx, byte [esp + edx + 0x10]
lea edi, [ecx - 0x7635bc25]
add ecx, 0xdb
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esp + 0xc8], edi
mov ecx, dword [esp + 0xc8]
add cl, 3
mov edx, dword [esp + 0x50]
mov byte [esp + edx + 0x10], cl
mov ecx, dword [esp + 0x50]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x50]
cmp ecx, 0x18
jb 0x4254f0
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.00402d20
add esp, 8
mov edx, 0xffffffff
mov ecx, 0xfffffffd
nop
nop
nop
nop
add ecx, 3
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
jne 0x425560
shr ecx, 2
mov edi, edx
mov dword [esp + 0x68], edx
movzx edx, byte [eax + edx - 1]
cmp edx, 0x3d
je 0x425585
cmp edx, 0x2e
jne 0x425586
dec ecx
mov edx, dword [esp + 0x68]
movzx edx, byte [eax + edx - 2]
cmp edx, 0x3d
mov dword [esp + 0x80], eax
je 0x4255a0
cmp edx, 0x2e
jne 0x4255a7
mov dword [esp + 0x78], esi
dec ecx
jmp 0x4255ab
mov dword [esp + 0x78], esi
mov dword [esp + 0xbc], ecx
lea eax, [ecx + 1]
push eax
call fcn.00409230
add esp, 4
mov dword [esp + 0x64], eax
cmp dword [esp + 0x68], 0
je 0x4256db
xor esi, esi
mov edi, 2
jmp 0x4255f2
mov ecx, dword [esp + 0x70]
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
mov esi, ecx
cmp edi, edx
mov edi, eax
jae 0x4256db
mov ebx, dword [esp + 0x80]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00419940
add esp, 4
mov byte [esp + 0x48], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00419940
mov edx, dword [esp + 0x6c]
add esp, 4
movzx ecx, byte [esp + 0x48]
shl cl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, cl
mov ecx, dword [esp + 0x64]
mov byte [ecx + esi], ah
lea ecx, [esi + 1]
cmp edi, edx
jae 0x4255e0
mov byte [esp + 0x70], al
mov dword [esp + 0x48], esi
mov eax, dword [esp + 0x80]
movzx eax, byte [eax + edi]
push eax
mov ebx, ecx
call fcn.00419940
mov ecx, ebx
mov edx, dword [esp + 0x6c]
add esp, 4
cmp al, 0x40
je 0x4255e0
movzx ecx, byte [esp + 0x70]
shl cl, 4
mov ah, al
shr ah, 2
and ah, 0xf
or ah, cl
mov ebx, dword [esp + 0x48]
lea ecx, [ebx + 2]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x64]
mov byte [ecx + ebx + 1], ah
mov ebx, eax
lea eax, [edi + 1]
cmp eax, edx
jae 0x4255d6
mov eax, dword [esp + 0x80]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00419940
mov edx, dword [esp + 0x6c]
add esp, 4
cmp al, 0x40
mov ecx, dword [esp + 0x70]
je 0x4255e0
shl bl, 6
add al, bl
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x48]
mov byte [ecx + ebx + 2], al
add ebx, 3
mov ecx, ebx
jmp 0x4255e0
mov eax, dword [esp + 0xbc]
add eax, 0xfffffffb
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x64]
add eax, 5
mov dword [esp + 0x54], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
push 0x79955919
push dword [0x44863c]
call fcn.0043bd20
add esp, 8
lea ecx, [esp + 8]
lea edx, [esp + 0x50]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444c34]
xor ebx, ebx
mov eax, dword [case.0x4239fe.169]
mov edi, dword [esp + 0xa8]
mov esi, dword [esp + 0x78]
jmp case.0x4239fe.166
mov dword [esp + 0x10], 0x33d6310f
mov dword [esp + 0x14], 0x370835c4
mov dword [esp + 0x18], 0xcb42c93c
mov dword [esp + 0x1c], 0xcfcecd38
mov word [esp + 0x20], 0
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x4c]
cmp eax, 0x11
mov esi, dword [esp + 0x78]
ja 0x4257ec
nop
nop
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
movzx edx, byte [esp + eax + 0x10]
lea edi, [ecx - 0x50b93288]
lea eax, [ecx + edx]
add eax, 0xaf46cd78
and edi, edx
mov ebx, 0x50b93287
sub ebx, ecx
or ebx, edx
add ebx, ecx
lea ecx, [edi + ebx]
add ecx, 0xaf46cd79
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov dword [esp + 4], ecx
mov eax, dword [esp + 4]
add al, 0xb8
mov ecx, dword [esp + 0x4c]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
cmp eax, 0x12
jb 0x425790
lea edi, [esp + 0xc8]
lea eax, [esp + 0x10]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x20]
lea edi, [esp + 0xd8]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esi + 0x10]
cmp esi, 0xffffffef
jge 0x42581f
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x6c]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x425861
mov eax, dword [esp + 0x6c]
lea edx, [eax + 2]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425850
mov word [eax], 0
movzx ecx, word [esp + 0xc8]
test cx, cx
je 0x425891
lea edx, [esp + 0xca]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425880
mov word [eax], 0
mov ecx, dword [ebp + 8]
push dword [esp + 8]
push dword [esp + 0x10]
push edi
call fcn.00409c20
mov ebx, eax
jmp dword [0x444c3c]
push edi
call fcn.00409240
add esp, 4
push 0xe9520bac
push dword [0x448624]
call fcn.0043bd20
add esp, 8
push dword [esp + 0xc]
call eax
mov eax, dword [case.0x4239fe.169]
mov edi, dword [esp + 0xa8]
nop
nop
nop
jmp eax
mov eax, dword [case.0x4239fe.173]
mov ecx, dword [esp + 0xac]
nop
nop
jmp eax
jmp dword [0x444c64]
push dword [esp + 0x64]
call fcn.00409240
mov ecx, dword [esp + 0xb0]
add esp, 4
push ecx
call fcn.00402f10
add esp, 4
mov eax, dword [case.0x4239fe.158]
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x444c7c]
jmp dword [0x444c84]
push edi
call fcn.00409240
add esp, 4
push edi
call fcn.00409240
add esp, 4
jmp dword [0x444c90]
mov eax, dword [case.0x4239fe.156]
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x48], eax
mov dword [esp + 0x10], 0xa151417
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x50]
cmp eax, 0xb
ja 0x4259de
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0xad]
mov edi, 0x4147ad52
sub edi, eax
or edi, ecx
not ecx
or ecx, edx
add edi, ecx
mov eax, 0xfffffffe
sub eax, edi
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0x45
mov ecx, dword [esp + 0x50]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x50]
mov eax, dword [esp + 0x50]
cmp eax, 0xc
jb 0x425990
mov ecx, dword [0x448630]
test ecx, ecx
je 0x425a20
mov edx, dword [esp + 0x10]
xor edi, edi
mov eax, dword [0x448634]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0xad91fd63
je 0x425a10
inc edi
cmp ecx, edi
jne 0x425a00
jmp 0x425a20
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
jne 0x4251d3
nop
nop
nop
nop
mov edi, dword [esp + 0xb4]
jmp dword [0x444ca4]
movzx eax, bl
jmp dword [eax*4 + 0x444cac]
mov dword [esp + 0x10], 0xfb44f9aa
mov dword [esp + 0x14], 0xff59fd6b
mov dword [esp + 0x18], 0xf36cf15d
mov dword [esp + 0x1c], 0xf741f512
mov dword [esp + 0x20], 0xeb79e962
mov dword [esp + 0x24], 0xef4fed78
mov dword [esp + 0x28], 0xe347e177
mov dword [esp + 0x2c], 0xe778e54e
mov dword [esp + 0x30], 0xdb4ed941
mov dword [esp + 0x34], 0xdf40dd7d
mov dword [esp + 0x38], 0xd372d17a
mov word [esp + 0x3c], 0xd5d2
lea eax, [esp + 0x28]
mov word [eax + 0x1a], 0
mov dword [eax + 0x16], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x33
ja 0x425b0e
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax - 0x78785b01]
lea edi, [eax + 0xff]
mov ebx, edx
and ebx, edi
and ebx, ecx
xor edx, edi
and edx, ecx
add eax, ecx
add eax, 0x8787a4ff
lea ecx, [edx + ebx*2]
sub eax, ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
add al, 7
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x34
jb 0x425ac0
lea edi, [esp + 0xc8]
lea eax, [esp + 0x10]
mov ecx, 0xb
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x3c]
mov ecx, 1
lea edi, [esp + 0xf4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x88]
mov ecx, eax
and ecx, 1
xor eax, 1
mov edx, dword [esp + 0xc0]
add edx, eax
lea eax, [edx + ecx*2]
lea ecx, [edx + ecx*2]
add ecx, 0x16
add eax, eax
add eax, 0x2c
test ecx, ecx
jns 0x425b66
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x74]
movzx ecx, word [eax]
mov eax, ebx
test cx, cx
je 0x425ba1
mov edx, dword [esp + 0xb0]
mov eax, ebx
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 0x425b90
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esp + 0x6c]
movzx ecx, word [edx]
test cx, cx
je 0x425bd1
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 0x425bc0
mov word [eax], 0
movzx ecx, word [esp + 0xc8]
test cx, cx
je 0x425c01
lea edx, [esp + 0xca]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425bf0
mov word [eax], 0
mov dword [esp + 0x10], 0xb881547
mov dword [esp + 0x14], 0xf820991
mov dword [esp + 0x18], 0x3900d95
mov dword [esp + 0x1c], 0x7a601a6
mov word [esp + 0x20], 0x506
lea eax, [esp + 0x28]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [eax - 2], 0
mov dword [eax - 6], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x1f
ja 0x425ca5
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, eax
and edx, 0xdc82382d
xor eax, 0x5c82382d
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
add al, 0xc5
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x20
jb 0x425c60
lea edi, [esp + 0x50]
lea eax, [esp + 0x10]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x20]
mov ecx, 1
lea edi, [esp + 0x60]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esi + 0x12]
cmp esi, 0xffffffed
jge 0x425cd5
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov edi, eax
mov edx, dword [esp + 0x6c]
movzx ecx, word [edx]
test cx, cx
je 0x425d11
add edx, 2
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425d00
mov word [eax], 0
movzx ecx, word [esp + 0x50]
test cx, cx
je 0x425d41
lea edx, [esp + 0x52]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425d30
mov word [eax], 0
mov dword [esp + 0x10], 0xfbf8f9dc
lea eax, [esp + 0x28]
mov dword [eax - 0xd], 0
mov dword [eax - 0x10], 0
mov dword [eax - 0x14], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xe
ja 0x425dc7
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x3f]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xb0692f3f
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov ecx, eax
xor ecx, 0x46
and eax, 0x46
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xf
jb 0x425d80
push 0
push 0
push 0
push 0xc00000
lea eax, [esp + 0x20]
push eax
push ebx
push edi
push dword [ebp + 8]
call fcn.0041c170
add esp, 0x20
mov ecx, dword [esp + 0x7c]
and cl, 1
or cl, al
mov dword [esp + 0x7c], ecx
jmp dword [0x444cb4]
push edi
call fcn.00409240
add esp, 4
mov eax, dword [case.0x4239fe.198]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x444ccc]
push ebx
call fcn.00409240
add esp, 4
mov eax, dword [case.0x4239fe.192]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x4239fe.208]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [esp + 0xc4]
inc ecx
xor eax, eax
cmp ecx, 3
setne al
jmp dword [eax*4 + 0x444c0c]
mov eax, dword [case.0x4239fe.213]
nop
nop
jmp eax
jmp dword [0x444d04]
push dword [esp + 0x74]
call fcn.00409240
add esp, 4
mov eax, dword [esp + 0x7c]
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret