Function at 0x422c2a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x12d0
call fcn.00408760
call fcn.0040cb80
mov esi, eax
xor ebx, ebx
test eax, eax
sete bl
mov eax, dword [ebx*4 + 0x4400a0]
mov ecx, 0xb5089e7a
xor ecx, dword [0x4400a8]
add ecx, eax
inc ecx
xor eax, eax
jmp ecx
add byte [eax], al
mov dword [esp + 0x25c], 0
mov dword [esp + 0x258], 0
mov dword [esp + 0x254], 0
mov dword [esp + 0x250], 0
mov byte [esp + 0x250], 0x37
mov byte [esp + 0x251], 0x34
mov byte [esp + 0x252], 0x35
mov byte [esp + 0x253], 0x32
mov dword [esp + 0x50], 0
mov ecx, dword [esp + 0x50]
cmp ecx, 0x20
jae 0x41b382
jmp 0x41b343
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x50]
movzx edx, byte [esp + edx + 0x250]
mov esi, ecx
add esi, 0x59
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add cl, 0xea
mov edx, dword [esp + 0x50]
mov byte [esp + edx + 0x250], cl
mov ecx, dword [esp + 0x50]
inc ecx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x50]
cmp ecx, 0x20
jb 0x41b343
jmp 0x41b382
mov ecx, dword [esp + 0x250]
mov edx, dword [0x448cd8]
cmp edx, 0
je 0x41b3da
mov esi, dword [0x448cdc]
xor edi, edi
cmp dword [esi + edi*8], 0x5c3924fc
jne 0x41b3af
mov edx, dword [esi + edi*8 + 4]
cmp edx, ecx
je 0x41b3da
jmp 0x41b3b8
add edi, 1
cmp edi, edx
je 0x41b3d8
jmp 0x41b39c
mov ecx, dword [0x448ce0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov dword [esp + 0xc], eax
call fcn.004373e0
jmp 0x41b3da
jmp 0x41b3da
mov dword [esp + 0x150], 0
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
mov eax, dword [eax + ecx*4]
mov ecx, dword [0x441dc8]
xor ecx, 0xbe9b0054
sub eax, ecx
jmp eax
xor eax, eax
mov edi, dword [esp + 0x10]
cmp esi, edi
setne al
xor ebx, ebx
jmp dword [eax*4 + 0x44316c]
movzx ecx, word [edi]
xor ebx, ebx
test cx, cx
je 0x4207a6
mov eax, edi
jmp 0x420680
xor ecx, ecx
test eax, eax
sete cl
mov ebx, 0x20119
xor eax, eax
jmp dword [ecx*4 + 0x443164]
jmp dword [eax*4 + 0x4430dc]
xor ecx, ecx
cmp eax, 4
sete cl
mov ebx, 0x20119
xor eax, eax
jmp dword [ecx*4 + 0x44315c]
mov ecx, dword [esp + 8]
mov eax, dword [esp + 8]
movzx edx, byte [esp + eax + 0x20]
lea eax, [ecx + edx]
add eax, 0xb958b5d2
add ecx, 0xb958b5d2
mov ecx, 0xc901d121
mov ecx, 0xc901d121
sub eax, ecx
mov ecx, eax
or ecx, 0x41
and eax, 0x41
add eax, ecx
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x2d
jb case.default.0x420390
lea eax, [esp + 0x64]
lea ecx, [esp + 0x20]
push eax
push edi
push 0
push ecx
push dword [esp + 0x6c]
call fcn.0043b430
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44311c]
jmp 0x4203c9
movzx eax, word [esp + 0x70]
test ax, ax
je 0x4203c1
lea ecx, [esp + 0x72]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4203b0
mov word [esi], 0xa
add esi, 2
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x2f], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0x62656467
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x12
ja 0x420440
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov eax, dword [esp + 8]
movzx eax, byte [esp + eax + 0x20]
lea edx, [ecx + 0x71]
and edx, eax
add ecx, eax
add edx, edx
sub ecx, edx
add cl, 0x5a
mov eax, dword [esp + 8]
mov byte [esp + eax + 0x20], cl
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x13
jb 0x420410
mov ecx, dword [0x448cd8]
test ecx, ecx
je 0x420490
mov edx, dword [esp + 0x20]
xor edi, edi
mov eax, dword [0x448cdc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0x5c3924fc
je 0x420470
inc edi
cmp ecx, edi
jne 0x420460
jmp 0x420490
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
je 0x420490
push dword [esp + 0xc]
push 1
push dword [0x448ce0]
push eax
call fcn.004373e0
add esp, 0x10
nop
nop
nop
jmp dword [0x443124]
push dword [esp + 0x18]
call fcn.004087a0
add esp, 4
mov eax, dword [case.0x420390.6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
inc ebx
xor eax, eax
cmp ebx, dword [esp + 0x1c]
setb al
jmp dword [eax*4 + 0x443104]
xor edx, edx
cmp dword [esp + 0x70], 1
sete dl
jmp dword [edx*4 + 0x443144]
jmp dword [ecx*4 + 0x44314c]
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x443154]
mov eax, 2
xor ecx, ecx
jmp dword [ecx*4 + 0x44314c]
xor eax, eax
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x443154]
mov ebx, edx
add ebx, edi
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
je 0x4206b5
test esi, esi
je 0x420688
cmp eax, esi
jae 0x4206b5
mov edx, ebx
movzx ebx, cx
xor ecx, ecx
cmp ebx, 0x800
setb byte [esp + 0xc]
mov edi, 1
cmp ebx, 0x80
jb 0x420670
movzx ebx, byte [esp + 0xc]
mov cl, bl
xor ecx, 3
mov edi, ecx
jmp 0x420670
lea edi, [ebx + 1]
push edi
call fcn.00435440
add esp, 4
test ebx, ebx
mov dword [esp + 0x58], eax
jle 0x4207b8
lea ecx, [eax + ebx]
mov dword [esp + 0xc], ecx
add edi, eax
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x10]
mov edi, eax
mov dword [esp + 0x60], ebx
jmp 0x420706
mov byte [edi], cl
mov eax, 1
add edx, 2
add edi, eax
cmp edi, dword [esp + 0xc]
jae 0x4207ba
test esi, esi
je 0x420712
cmp edx, esi
jae 0x4207ba
movzx ecx, word [edx]
test cx, cx
je 0x4207ba
cmp cx, 0x7f
jbe 0x4206f0
mov eax, edi
not eax
add eax, dword [esp + 0x18]
cmp eax, 2
jb 0x420760
movzx ebx, cx
cmp ebx, 0x7ff
mov ebx, dword [esp + 0x60]
ja 0x420760
mov eax, ecx
shr eax, 6
add al, 0xc0
mov byte [edi], al
and cl, 0x3f
or cl, 0x80
mov byte [edi + 1], cl
mov eax, 2
jmp 0x4206f7
cmp eax, 3
mov eax, 0
jb 0x4206f7
movzx eax, cx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
shr eax, 0xc
or al, 0xe0
mov byte [edi], al
mov eax, dword [esp + 0x54]
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [edi + 1], al
mov eax, ecx
xor eax, 0xc0
or ecx, 0x3f
and ecx, eax
add cl, 0x80
mov byte [edi + 2], cl
mov eax, 3
jmp 0x4206f7
push 1
call fcn.00435440
add esp, 4
mov edi, eax
mov dword [esp + 0x58], eax
jmp 0x4207ba
mov edi, eax
mov ecx, dword [ebp + 8]
mov byte [edi], 0
mov dword [esp + 0x70], 0xe7f0fe83
mov dword [esp + 0x74], 0xfae888e3
mov dword [esp + 0x78], 0xefeae9b6
mov byte [esp + 0x7c], 0x60
mov dword [esp + 0x7d], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x13
ja 0x420848
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
movzx esi, byte [esp + eax + 0x70]
lea eax, [edx + esi]
add eax, 0x52d8d232
add edx, 0x52d8d232
and edx, esi
add edx, edx
sub eax, edx
add al, 0xa2
mov edx, dword [esp + 0x20]
mov byte [esp + edx + 0x70], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0x14
jb 0x420810
lea eax, [esp + 0x70]
push ebx
mov esi, dword [esp + 0x5c]
push esi
push eax
call fcn.00409140
mov ebx, eax
mov edi, dword [esp + 0x10]
jmp dword [0x443174]
push esi
call fcn.004087a0
add esp, 4
push edi
call fcn.004354f0
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
mov edi, esp
sub esp, 0x20
mov ebx, esp
and ebx, 0xfffffff0
mov esp, ebx
jmp eax
mov dword [esi + 0xa8], ebx
push eax
sub esp, 0x2c
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
mov dword [esi + 0x90], edi
mov dword [esi + 0xac], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0xa0], 0
mov dword [esi + 0x9c], 0
mov dword [esi + 0x98], 0
mov dword [esi + 0x40], 0x23ac21ab
mov dword [esi + 0x44], 0xdf3fddbd
mov dword [esi + 0x48], 0xdb0ed949
mov dword [esi + 0x4c], 0xd75cd545
mov dword [esi + 0x50], 0xd3d0d149
mov dword [esi + 0x54], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x5f], 0
mov dword [esi + 0x14], 0
mov eax, dword [esi + 0x14]
cmp eax, 0x22
ja 0x420e8e
nop
nop
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x14]
add al, 0xfb
xor al, byte [esi + ecx + 0x40]
add al, 0x23
mov ecx, dword [esi + 0x14]
mov byte [esi + ecx + 0x40], al
mov eax, dword [esi + 0x14]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x14]
cmp eax, 0x23
jb 0x420e60
lea edi, [esi + 0x40]
lea ecx, [esi + 0x98]
push edi
call fcn.004355e0
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44318c]
lea ecx, [esi + 0x98]
push 0x410
call fcn.004358e0
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443194]
xor ebx, ebx
jmp dword [0x4431a4]
mov dword [esi + 0x40], 0xf2abe4f1
mov dword [esi + 0x44], 0xecf291f4
mov dword [esi + 0x48], 0xf8f1f39d
mov dword [esi + 0x4c], 0xf78ef699
mov dword [esi + 0x50], 0x94e3e2f6
mov dword [esi + 0x54], 0x8fe0e6e1
mov dword [esi + 0x58], 0x8a8dee8a
mov dword [esi + 0x5c], 0x96cf88e3
mov dword [esi + 0x60], 0xf6e4e6e2
mov dword [esi + 0x64], 0x9efbd9e5
mov dword [esi + 0x68], 0x3d2fdfd
mov dword [esi + 0x6c], 0
mov dword [esi + 0x70], 0
mov byte [esi + 0x74], 0
mov dword [esi + 0x14], 0
mov eax, dword [esi + 0x14]
cmp eax, 0x34
ja 0x420f70
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x14]
add al, 0xb2
xor al, byte [esi + ecx + 0x40]
add al, 0x22
mov ecx, dword [esi + 0x14]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 0x14]
mov eax, dword [esi + 0x14]
cmp eax, 0x35
jb 0x420f50
lea eax, [esi + 0x14]
lea ecx, [esi + 0x98]
push 0
push 0x2b
push edi
push eax
call fcn.00435eb0
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
xor eax, eax
cmp edi, ecx
sete al
jmp dword [eax*4 + 0x4431ac]
mov eax, ecx
sub eax, edi
sar eax, 2
imul eax, eax, 0x421
push eax
mov ebx, ecx
call fcn.00435440
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x38]
mov dword [eax], edi
mov eax, dword [esi + 0x8c]
mov dword [eax], ebx
inc dword [esi + 0x88]
mov dword [esi + 0x34], 0
xor eax, eax
mov dword [esi + 8], ebx
cmp edi, ebx
setne al
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], ecx
jmp dword [eax*4 + 0x4431b4]
mov edi, dword [esi + 0xc]
add edi, 4
mov eax, dword [esi + 0x38]
mov dword [eax], edi
xor eax, eax
cmp edi, dword [esi + 8]
setne al
jmp dword [eax*4 + 0x4431b4]
mov dword [esi + 0xc], edi
mov eax, dword [edi]
mov dword [esi + 0x10], eax
push 0x400
push 0
mov ebx, dword [esi + 0x3c]
push ebx
call fcn.00408810
add esp, 0xc
lea ecx, [esi + 0x98]
mov edi, dword [esi + 0xac]
push edi
push 0x400
push ebx
push dword [esi + 0x10]
call fcn.00435d30
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
jmp dword [ecx*4 + 0x4431bc]
xor eax, eax
cmp dword [edi], 0
sete al
jmp dword [eax*4 + 0x4431c4]
mov eax, 1
jmp dword [eax*4 + 0x4431cc]
xor eax, eax
jmp dword [eax*4 + 0x4431cc]
mov edx, dword [esi + 0x3c]
mov byte [edx + 0x3ff], 0
movzx ecx, byte [edx]
xor eax, eax
test cl, cl
je 0x4210a2
nop
nop
nop
nop
cmp cl, 0x2e
je 0x4210a0
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x421090
jmp 0x4210a2
mov eax, edx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4431d4]
lea edx, [eax + 1]
movzx ecx, byte [eax + 1]
xor edi, edi
test cl, cl
je 0x4210d4
mov ebx, edx
nop
cmp cl, 0x2e
je 0x4210d0
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x4210c0
jmp 0x4210d2
mov edi, edx
mov edx, ebx
xor ecx, ecx
test edi, edi
setne cl
jmp dword [ecx*4 + 0x4431dc]
mov ecx, edi
mov ebx, edx
sub ecx, edx
lea edx, [ecx + ecx*2]
shr edx, 2
movzx eax, byte [eax + ecx]
cmp eax, 0x3d
je 0x4210fc
cmp eax, 0x2e
jne 0x4210fd
dec edx
movzx eax, byte [ecx + ebx - 2]
cmp eax, 0x3d
mov dword [esi + 8], ecx
je 0x42110f
cmp eax, 0x2e
jne 0x421116
mov eax, edx
not eax
lea edx, [eax + edx*2]
mov dword [esi + 0xa4], edx
lea eax, [edx + 1]
push eax
call fcn.00435440
add esp, 4
mov dword [esi + 0x30], eax
cmp edi, ebx
je 0x421230
mov eax, ebx
xor ebx, ebx
mov edi, 2
mov dword [esi + 0x10], eax
jmp 0x421165
mov edx, dword [esi + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
mov ebx, edx
cmp edi, ecx
mov edi, eax
mov eax, dword [esi + 0x10]
jae 0x421230
movzx eax, byte [eax + edi - 2]
push eax
call fcn.0040f2c0
add esp, 4
mov byte [esi + 0xc], al
mov eax, dword [esi + 0x10]
movzx eax, byte [eax + edi - 1]
push eax
call fcn.0040f2c0
add esp, 4
movzx ecx, byte [esi + 0xc]
shl cl, 2
mov edx, eax
shr dl, 4
and dl, 3
or dl, cl
mov ecx, dword [esi + 0x30]
mov byte [ecx + ebx], dl
lea edx, [ebx + 1]
mov ecx, dword [esi + 8]
cmp edi, ecx
jae 0x421150
mov byte [esi + 0x2c], al
mov dword [esi + 0xc], ebx
mov eax, dword [esi + 0x10]
movzx eax, byte [eax + edi]
push eax
mov ebx, edx
call fcn.0040f2c0
mov edx, ebx
mov ecx, dword [esi + 8]
add esp, 4
cmp al, 0x40
je 0x421150
movzx edx, byte [esi + 0x2c]
shl dl, 4
mov byte [esi + 7], al
shr al, 2
and al, 0xf
or al, dl
mov ebx, dword [esi + 0xc]
lea edx, [ebx + 2]
mov dword [esi + 0x2c], edx
mov edx, dword [esi + 0x30]
mov byte [edx + ebx + 1], al
lea eax, [edi + 1]
cmp eax, ecx
jae 0x421141
mov eax, dword [esi + 0x10]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.0040f2c0
mov ecx, dword [esi + 8]
add esp, 4
cmp al, 0x40
mov edx, dword [esi + 0x2c]
mov ah, byte [esi + 7]
je 0x421150
shl ah, 6
add al, ah
mov edx, dword [esi + 0x30]
mov ebx, dword [esi + 0xc]
mov byte [edx + ebx + 2], al
add ebx, 3
mov edx, ebx
jmp 0x421150
mov eax, dword [esi + 0xa4]
mov edi, dword [esi + 0x30]
mov byte [edi + eax], 0
push edi
call fcn.004016b0
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x94]
mov dword [eax], ebx
jmp dword [0x4431e4]
push edi
call fcn.004087a0
add esp, 4
push ebx
call fcn.00402150
add esp, 4
mov ecx, dword [esi + 0x90]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x28]
jmp dword [ecx*4 + 0x4431ec]
mov edx, dword [esi + 0xa8]
mov word [edx + 0x18], 0
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0xc], 0
mov dword [edx + 8], 0
mov dword [edx + 4], 0
mov dword [edx], 0x7bdaced3
mov dword [esi + 0x40], 0
mov eax, dword [esi + 0x40]
cmp eax, 0x19
ja 0x4212ee
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x40]
add al, 0xf
xor al, byte [edx + ecx]
add al, 0x97
mov ecx, dword [esi + 0x40]
mov byte [edx + ecx], al
inc dword [esi + 0x40]
mov eax, dword [esi + 0x40]
cmp eax, 0x1a
jb 0x4212d0
push edx
mov eax, dword [esi + 0x90]
push dword [eax]
call fcn.00401ef0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4431f4]
jmp 0x421333
movzx ecx, byte [eax]
test cl, cl
je 0x42132b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x421320
mov word [ebx], 0x203a
add ebx, 2
mov eax, dword [esi + 0x3c]
movzx ecx, byte [eax]
test cl, cl
je 0x421364
mov edx, dword [esi + 0x88]
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x421350
mov byte [eax], 0
jmp dword [0x443200]
mov eax, ebx
mov byte [ebx], 0
jmp dword [0x443200]
lea ebx, [eax + 1]
mov byte [eax], 0xa
mov cl, 1
mov dword [esi + 0x34], ecx
jmp dword [0x443204]
mov byte [eax], 0xa
lea ebx, [eax + 1]
mov byte [eax], 0xa
mov cl, 1
mov dword [esi + 0x34], ecx
jmp dword [0x443204]
mov dword [esi + 0x28], ebx
mov eax, dword [esi + 0x94]
push dword [eax]
call fcn.00402700
add esp, 4
mov eax, dword [esi + 0x38]
mov edi, dword [eax]
mov ecx, dword [esi + 0x8c]
mov ecx, dword [ecx]
add edi, 4
mov dword [eax], edi
xor eax, eax
mov dword [esi + 8], ecx
cmp edi, ecx
setne al
jmp dword [eax*4 + 0x4431b4]
mov eax, dword [esi + 0x34]
mov ecx, eax
and cl, 1
movzx ecx, cl
mov edi, dword [esi + 0x20]
mov ebx, dword [esi + 0x24]
jmp dword [ecx*4 + 0x44321c]
jmp dword [0x443224]
xor ebx, ebx
test edi, edi
jne 0x421410
jmp case.0x420ea2.1
mov ebx, eax
jmp dword [0x443234]
push dword [esi + 0x24]
call fcn.004087a0
add esp, 4
and bl, 1
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
test edi, edi
je case.0x420ea2.1
cmp edi, ecx
je case.0x420ea2.1
push edi
call fcn.004087a0
add esp, 4
lea ecx, [esi + 0x98]
call fcn.00435a30
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x28]
mov byte [eax], 0
sub eax, ebx
mov dword [edi], 0x97848551
mov dword [edi + 4], 0x9bafac95
mov dword [edi + 8], 0x969e9c91
mov dword [edi + 0xc], 0x9c94b453
mov dword [edi + 0x10], 0xcf5596a1
mov dword [edi + 0x14], 0xede3e4eb
mov dword [edi + 0x18], 0xfbe82feb
mov word [edi + 0x1c], 0x71e6
mov dword [edi + 0x1e], 0
mov dword [esi + 0x40], 0
mov ecx, dword [esi + 0x40]
cmp ecx, 0x21
ja 0x4214c9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x40]
mov ecx, dword [esi + 0x40]
mov edi, dword [esi + 0x20]
movzx edi, byte [edi + ecx]
lea ecx, [edx + edi]
add ecx, 0xc91e2b2d
add edx, 0xc91e2b2d
and edx, edi
mov edi, dword [esi + 0x20]
add edx, edx
sub ecx, edx
add cl, 0xc5
mov edx, dword [esi + 0x40]
mov byte [edi + edx], cl
inc dword [esi + 0x40]
mov ecx, dword [esi + 0x40]
cmp ecx, 0x22
jb 0x421490
mov ecx, dword [ebp + 8]
push eax
mov ebx, dword [esi + 0x24]
push ebx
push edi
call fcn.00409140
mov eax, dword [esi + 0x28]
mov byte [eax], 0
sub eax, ebx
mov dword [edi], 0x97848551
mov dword [edi + 4], 0x9bafac95
mov dword [edi + 8], 0x969e9c91
mov dword [edi + 0xc], 0x9c94b453
mov dword [edi + 0x10], 0xcf5596a1
mov dword [edi + 0x14], 0xede3e4eb
mov dword [edi + 0x18], 0xfbe82feb
mov word [edi + 0x1c], 0x71e6
mov dword [edi + 0x1e], 0
mov dword [esi + 0x40], 0
mov ecx, dword [esi + 0x40]
cmp ecx, 0x21
ja 0x421569
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x40]
mov ecx, dword [esi + 0x40]
mov edi, dword [esi + 0x20]
movzx edi, byte [edi + ecx]
lea ecx, [edx + edi]
add ecx, 0xc91e2b2d
add edx, 0xc91e2b2d
and edx, edi
mov edi, dword [esi + 0x20]
add edx, edx
sub ecx, edx
add cl, 0xc5
mov edx, dword [esi + 0x40]
mov byte [edi + edx], cl
inc dword [esi + 0x40]
mov ecx, dword [esi + 0x40]
cmp ecx, 0x22
jb 0x421530
mov ecx, dword [ebp + 8]
push eax
mov ebx, dword [esi + 0x24]
push ebx
push edi
call fcn.00409140
jmp dword [0x443230]
int3
xor edx, edx
test esi, esi
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x4432b4]
jmp dword [ecx*4 + 0x44323c]
mov dword [esp + 0x30], 0xb3e0b11c
mov dword [esp + 0x34], 0xb7f1b5f1
mov dword [esp + 0x38], 0x8bd989d1
mov dword [esp + 0x3c], 0x8fdc8dd8
mov dword [esp + 0x40], 0x832e8129
mov dword [esp + 0x44], 0x87c785d9
mov dword [esp + 0x48], 0x9bc299db
mov dword [esp + 0x4c], 0x9fc09dc5
mov dword [esp + 0x50], 0x933e91d5
mov dword [esp + 0x54], 0x97c995c7
mov dword [esp + 0x58], 0xebbee9ae
mov dword [esp + 0x5c], 0xefafedbb
mov dword [esp + 0x60], 0xe3a7e1b2
mov dword [esp + 0x64], 0xe7b0e548
mov dword [esp + 0x68], 0xfb46f959
mov dword [esp + 0x6c], 0xff5bfd4a
mov dword [esp + 0x70], 0xf3a1f15c
mov dword [esp + 0x74], 0xf753f540
mov dword [esp + 0x78], 0xcb77c969
mov dword [esp + 0x7c], 0xcdcc
mov dword [esp + 0xa0], 0
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x4f
ja 0x4216c6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
add cl, 0x18
xor cl, byte [esp + edx + 0x30]
add cl, 0x58
mov edx, dword [esp + 0xa0]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x50
jb 0x421690
lea ecx, [esp + 0xf4]
lea edi, [esp + 0x30]
push 0
push 0
push eax
push ecx
push edi
call fcn.0043a900
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x443244]
lea ebx, [esp + 0x90]
lea eax, [esp + 4]
push ebx
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x114]
call fcn.0043ad30
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44324c]
mov ecx, dword [esp + 0x90]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x421733
mov eax, 0xffffffff
push eax
call fcn.00435440
add esp, 4
mov esi, eax
mov dword [esp + 0x30], 0x4bd64589
mov dword [esp + 0x34], 0x4fdc49df
mov dword [esp + 0x38], 0x33e04de9
mov dword [esp + 0x3c], 0x3780319e
mov dword [esp + 0x40], 0x3ba03591
mov dword [esp + 0x44], 0x3f383992
lea eax, [esp + 0x48]
mov dword [eax + 4], 0
mov dword [eax + 0xc], 0
mov word [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 8], 0
mov dword [eax], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xa0]
cmp eax, 0x2d
ja 0x421819
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa0]
movzx edx, byte [esp + eax + 0x30]
lea eax, [ecx + edx]
add eax, 0x9baa3235
add ecx, 0x9baa3235
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x8d
mov ecx, dword [esp + 0xa0]
mov byte [esp + ecx + 0x30], al
mov eax, dword [esp + 0xa0]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
cmp eax, 0x2e
jb 0x4217c0
push ebx
push esi
push 0
push edi
push dword [esp + 0x104]
call fcn.0043b430
add esp, 0x14
shr eax, 0x1f
mov dword [esp], esi
jmp dword [eax*4 + 0x443254]
mov dword [esp], 0
jmp dword [0x44325c]
push esi
call fcn.004087a0
add esp, 4
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x3f], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0x62656467
mov dword [esp + 0xa0], 0
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x12
ja 0x4218df
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + 0x71]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add cl, 0x5a
mov edx, dword [esp + 0xa0]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x13
jb 0x4218a0
mov ecx, dword [0x448cd8]
test ecx, ecx
je 0x421940
mov edx, dword [esp + 0x30]
xor esi, esi
mov ebx, dword [0x448cdc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + esi*8], 0x5c3924fc
je 0x421924
inc esi
cmp ecx, esi
jne 0x421900
jmp 0x421940
mov esi, 4
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x4432a4]
mov ecx, dword [ebx + esi*8 + 4]
cmp ecx, edx
je 0x421940
push eax
push 1
push dword [0x448ce0]
push ecx
call fcn.004373e0
add esp, 0x10
nop
nop
mov eax, dword [case.0x421833.6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp dword [esp], 0
setne al
mov esi, 2
jmp dword [eax*4 + 0x443274]
jmp dword [0x443280]
push edi
call fcn.00439e00
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edi
call fcn.00439e00
add esp, 4
jmp dword [0x443284]
movzx edx, al
xor ecx, ecx
mov eax, 1
jmp dword [edx*4 + 0x44328c]
xor edx, edx
cmp dword [esp + 0x30], 1
sete dl
jmp dword [edx*4 + 0x443294]
mov esi, ecx
jmp dword [eax*4 + 0x44329c]
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x4432a4]
xor eax, eax
jmp dword [eax*4 + 0x44329c]
xor esi, esi
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x4432a4]
xor edx, edx
cmp esi, 4
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x4432ac]
mov eax, dword [case.0x421833.29]
nop
nop
nop
nop
nop
jmp eax
xor ebx, ebx
cmp dword [esp], 0
sete bl
jmp dword [ebx*4 + 0x4432cc]
mov dword [esp + 0x30], 0x5b39593c
mov dword [esp + 0x34], 0x47d045d3
mov dword [esp + 0x38], 0x432b412e
mov dword [esp + 0x3c], 0x4f2a4d23
mov dword [esp + 0x40], 0x4bdd492b
mov dword [esp + 0x44], 0x771875e2
mov dword [esp + 0x48], 0x731d7119
mov dword [esp + 0x4c], 0x7fe07d2a
mov dword [esp + 0x50], 0x7b147914
lea eax, [esp + 0x54]
mov word [esp + 0x54], 0x6564
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov dword [esp + 0x69], 0
mov dword [esp + 0xa0], 0
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x3c
ja 0x421b1b
nop
nop
nop
nop
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
movzx edx, byte [esp + edx + 0x30]
mov esi, ecx
and esi, 0xace8c4c
xor ecx, 0x8ace8c4c
lea ecx, [ecx + esi*2]
lea esi, [ecx + edx]
and ecx, edx
add ecx, ecx
sub esi, ecx
mov ecx, esi
xor ecx, 0xeb
and esi, 0x6b
lea ecx, [ecx + esi*2]
inc cl
mov edx, dword [esp + 0xa0]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x3d
jb 0x421ac0
lea edi, [esp + 0xf4]
lea edx, [esp + 0x30]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x118]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
mov ecx, dword [esp]
nop
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x421b50
cmp eax, 0xffffffd9
jge 0x421b6e
mov eax, 0xffffffff
jmp 0x421b71
xor eax, eax
jmp 0x422d75
add eax, 0x26
push eax
call fcn.00435440
add esp, 4
mov esi, eax
mov eax, dword [esp]
movzx ecx, word [eax]
mov eax, esi
test cx, cx
je 0x421bb1
mov eax, dword [esp]
lea edx, [eax + 2]
mov eax, esi
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 0x421ba0
mov word [eax], 0
movzx ecx, word [esp + 0xf4]
test cx, cx
je 0x421be1
lea edx, [esp + 0xf6]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421bd0
mov word [eax], 0
jmp dword [ebx*4 + 0x4432d4]
push dword [esp]
call fcn.004087a0
add esp, 4
lea eax, [esp + 4]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.0043a060
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4432dc]
xor edi, edi
xor ebx, ebx
jmp dword [0x44333c]
push esi
call fcn.004087a0
add esp, 4
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x443344]
xor eax, eax
test edi, edi
jne 0x422d3e
jmp 0x422d75
lea eax, [esp + 0x90]
push 0
push eax
push dword [esp + 0xc]
call fcn.0043a420
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x4432e4]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x90]
lea eax, [esi + 1]
push eax
call fcn.00435440
add esp, 4
push 0
push esi
mov dword [esp + 0xa0], eax
push eax
push dword [esp + 0x10]
call fcn.0043a530
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x4432ec]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
mov byte [edi + esi], 0
push 0x20
call fcn.00435440
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esp + 0x8c], eax
mov ecx, eax
push esi
push edi
call fcn.00424520
movzx eax, al
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x4432f4]
mov dword [esp + 0x30], 0xbfcec4db
mov dword [esp + 0x34], 0x34becebb
mov dword [esp + 0x38], 0x3f3327ff
mov dword [esp + 0x3c], 0x2af93240
mov dword [esp + 0x40], 0x303b3e4a
mov dword [esp + 0x44], 0x223d1ef3
mov dword [esp + 0x48], 0x572e562f
mov word [esp + 0x4c], 0xd957
mov dword [esp + 0x4e], 0
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xa0]
cmp eax, 0x29
ja 0x421db4
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
add al, 0x79
xor al, byte [esp + ecx + 0x30]
add al, 0xb1
mov ecx, dword [esp + 0xa0]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0xa0]
mov eax, dword [esp + 0xa0]
cmp eax, 0x2a
jb case.default.0x421dce
mov ecx, dword [esp + 0x8c]
lea eax, [esp + 0x30]
push eax
call fcn.00424750
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
jmp dword [ecx*4 + 0x4432fc]
add eax, 8
xor esi, esi
mov edx, dword [eax]
xor eax, eax
test edx, edx
setne al
xor ebx, ebx
mov dword [esp + 0xc], 0
xor edi, edi
jmp dword [eax*4 + 0x443304]
mov eax, dword [edx]
mov dword [esp], eax
mov dword [esp + 0x20], edx
mov ecx, ebx
sub ecx, esi
sar ecx, 3
mov eax, dword [esp + 0xc]
cmp ebx, eax
mov dword [esp + 0x1c], ecx
je 0x421e27
mov dword [esp + 0x24], ebx
mov edi, esi
jmp 0x421eb1
lea eax, [ecx + 1]
mov edi, ecx
shr edi, 1
add edi, ecx
cmp edi, eax
ja 0x421e36
mov edi, eax
mov eax, edi
and eax, 8
mov ecx, edi
or ecx, 8
imul ecx, eax
xor eax, 8
mov edx, edi
and edx, 0xfffffff7
imul edx, eax
add ecx, edx
push ecx
call fcn.00408790
add esp, 4
mov dword [esp + 0x10], eax
test esi, esi
je 0x421e9d
mov ebx, dword [esp + 0xc]
cmp esi, ebx
je 0x421e94
xor eax, eax
mov edx, dword [esp + 0x10]
nop
mov ecx, dword [esi + eax]
mov dword [edx + eax], ecx
mov ecx, dword [esi + eax + 4]
mov dword [edx + eax + 4], ecx
mov dword [esi + eax], 0
lea ecx, [esi + eax]
add ecx, 8
add eax, 8
cmp ecx, ebx
jne 0x421e70
mov ebx, esi
push ebx
call fcn.004087a0
add esp, 4
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
lea eax, [ebx + ecx*8]
mov dword [esp + 0x24], eax
lea eax, [ebx + edi*8]
mov edi, ebx
mov dword [esp + 0xc], eax
mov dword [edi + ecx*8], 0
mov dword [edi + ecx*8 + 4], 0
mov ecx, 1
mov ebx, 0xffffffff
xor edx, edx
mov eax, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, edx
dec ecx
dec ebx
inc edx
cmp byte [eax + esi], 0
jne 0x421ee0
mov dword [esp + 0x2c], ecx
push edx
mov dword [esp + 0x2c], edx
call fcn.00435440
add esp, 4
mov ecx, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x1c]
mov dword [edi + eax*8], ecx
mov eax, dword [esp + 0x28]
mov ecx, eax
shr ecx, 2
mov edx, dword [esp]
mov edi, dword [esp + 0x14]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
and eax, 0xfffffffc
mov edi, dword [esp + 0x14]
add edi, eax
add eax, dword [esp]
mov edx, ebx
or edx, 3
sub edx, ebx
mov ecx, edx
shr ecx, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test dl, 1
je 0x421f5e
and edx, 0xfffffffe
mov eax, dword [esp + 0x28]
movzx eax, byte [eax + edx]
mov ecx, dword [esp + 0x14]
mov byte [ecx + edx], al
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x421f80
neg eax
cmp ebx, 0xfffffffd
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
jne 0x421f94
mov eax, 0xffffffff
jmp 0x421fce
xor eax, eax
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
jmp 0x421ff9
and esi, 0xfffffffe
mov eax, 0xffffffff
mov ebx, dword [esp]
nop
mov ecx, eax
shr ecx, 8
xor al, byte [ebx]
movzx eax, al
xor ecx, dword [eax*4 + 0x43d6b0]
mov eax, ecx
shr eax, 8
xor cl, byte [ebx + 1]
add ebx, 2
movzx ecx, cl
xor eax, dword [ecx*4 + 0x43d6b0]
add esi, 0xfffffffe
jne 0x421fa0
mov dword [esp], ebx
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
test byte [esp + 0x2c], 1
je 0x421ff7
mov ecx, eax
shr ecx, 8
mov esi, dword [esp]
xor al, byte [esi]
movzx eax, al
xor ecx, dword [eax*4 + 0x43d6b0]
mov eax, ecx
mov ecx, dword [esp + 0x1c]
not eax
mov dword [edi + ecx*8 + 4], eax
add ebx, 8
add edx, 4
mov eax, dword [case.0x421dce.6]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov edx, dword [edx]
xor eax, eax
test edx, edx
setne al
mov esi, edi
jmp dword [eax*4 + 0x443304]
mov eax, dword [case.0x421dce.10]
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x44332c]
mov esi, dword [esp + 0x8c]
mov ecx, esi
call fcn.004248e0
push esi
call fcn.004087a0
add esp, 4
mov esi, dword [esp + 0x18]
jmp dword [0x443334]
mov esi, dword [esp + 0x18]
jmp dword [0x443334]
push dword [esp + 0x98]
call fcn.004087a0
add esp, 4
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 4]
mov dword [esp + 0x3f], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0x62656467
mov dword [esp + 0xa0], 0
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x12
ja 0x4220ff
nop
nop
nop
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + 0x71]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add cl, 0x5a
mov edx, dword [esp + 0xa0]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x13
jb 0x4220c0
mov ecx, dword [0x448cd8]
test ecx, ecx
je 0x42213c
mov edx, dword [esp + 0x30]
xor esi, esi
mov edi, dword [0x448cdc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x5c3924fc
je 0x422130
inc esi
cmp ecx, esi
jne 0x422120
jmp 0x42213c
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x422bb0
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
jmp dword [0x44333c]
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x443344]
mov dword [esp + 0x24], ebx
mov eax, ebx
mov dword [esp + 0x10], edi
sub eax, edi
sar eax, 3
mov ecx, eax
and ecx, 0x421
mov edx, eax
or eax, 0x421
imul eax, ecx
xor ecx, 0x421
and edx, 0xfffffbde
imul edx, ecx
add eax, edx
push eax
call fcn.00435440
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x30], 0xa37ead89
mov dword [esp + 0x34], 0xa741a153
mov dword [esp + 0x38], 0xbb46a545
mov dword [esp + 0x3c], 0xbf4eb979
mov dword [esp + 0x40], 0xb376bd4c
mov dword [esp + 0x44], 0xb742b151
mov dword [esp + 0x48], 0x4b6fb555
mov dword [esp + 0x4c], 0x4f9949a4
mov dword [esp + 0x50], 0x43a74db8
mov dword [esp + 0x54], 0x47bb41a1
mov dword [esp + 0x58], 0x5ba645a8
mov dword [esp + 0x5c], 0x5fb959ab
mov dword [esp + 0x60], 0x53ae5dbd
mov dword [esp + 0x64], 0x57dc5162
mov dword [esp + 0x68], 0x6b9055b0
lea eax, [esp + 0x6c]
mov word [esp + 0x6c], 0x6968
mov dword [esp + 0x6e], 0
mov dword [esp + 0x72], 0
mov dword [esp + 0x76], 0
mov word [esp + 0x7a], 0
mov dword [esp + 0xa0], 0
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x4b
ja 0x42228f
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + 0x66]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add cl, 0x9c
mov edx, dword [esp + 0xa0]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x4c
jb 0x422250
lea ebx, [esp + 0xa0]
lea edx, [esp + 0x30]
mov edi, ebx
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xdc]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea esi, [esp + 0xf0]
push esi
push 0
push 0
push 0x1e
push ebx
push 0
call dword [0x447ccc]
mov ebx, dword [esp + 0xf0]
test ebx, ebx
jns 0x4222e1
mov eax, 0xffffffff
jmp 0x4222e4
lea eax, [ebx + ebx]
push eax
call fcn.00435440
add esp, 4
mov edi, eax
push esi
push ebx
push eax
push 0x1e
lea eax, [esp + 0xb0]
push eax
push 0
call dword [0x447ccc]
lea eax, [esp + 0x9c]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0xa8], edi
push edi
call fcn.0043a060
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44334c]
xor eax, eax
mov edx, dword [case.0x4224f3.52]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], ecx
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
jmp case.0x4224f3.50
lea eax, [esp + 0xe8]
push 0
push eax
push dword [esp + 0xa4]
call fcn.0043a420
add esp, 0xc
not eax
shr eax, 0x1f
xor edx, edx
mov edi, dword [esp + 0xc]
jmp dword [eax*4 + 0x443354]
mov esi, dword [esp + 0xe8]
lea eax, [esi + 1]
push eax
call fcn.00435440
add esp, 4
push 0
push esi
mov dword [esp + 0xec], eax
push eax
push dword [esp + 0xa8]
call fcn.0043a530
add esp, 0x10
not eax
shr eax, 0x1f
xor edx, edx
mov edi, dword [esp + 0xc]
jmp dword [eax*4 + 0x44335c]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0xe4]
mov byte [edi + esi], 0
push 0x20
call fcn.00435440
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esp + 0xe0], eax
mov ecx, eax
push esi
push edi
call fcn.00424520
movzx eax, al
xor edx, edx
mov edi, dword [esp + 0xc]
jmp dword [eax*4 + 0x443364]
mov dword [esp + 0x30], 0xa754ae43
mov dword [esp + 0x34], 0x52a454a3
mov dword [esp + 0x38], 0xb74b5f77
mov dword [esp + 0x3c], 0x5c7148ba
mov dword [esp + 0x40], 0xbe4344b4
mov dword [esp + 0x44], 0xb9b9667b
mov dword [esp + 0x48], 0xcf393cc6
mov dword [esp + 0x4c], 0xc73d3c1f
mov word [esp + 0x50], 0x5135
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x39
ja 0x4224d5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
add al, 0xa8
xor al, byte [esp + ecx + 0x30]
add al, 0x68
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x3a
jb 0x4224b0
mov ecx, dword [esp + 0xe0]
lea eax, [esp + 0x30]
push eax
call fcn.00424750
xor ecx, ecx
test eax, eax
setne cl
xor edx, edx
mov edi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x44336c]
jmp dword [0x443424]
mov esi, dword [esp + 0xe0]
mov ecx, esi
mov ebx, edx
call fcn.004248e0
push esi
call fcn.004087a0
mov edx, ebx
add esp, 4
jmp dword [0x44342c]
jmp dword [0x443380]
add eax, 8
xor edx, edx
mov edi, dword [esp + 0xc]
jmp 0x422553
add eax, 4
mov eax, dword [eax]
mov ecx, dword [case.0x4224f3.9]
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443394]
mov ebx, dword [eax]
cmp dword [eax + 0x18], 3
jne case.default.0x422582
mov esi, dword [eax + 0x10]
xor ecx, ecx
test ebx, ebx
setne cl
jmp dword [ecx*4 + 0x44339c]
xor esi, esi
xor ecx, ecx
test ebx, ebx
setne cl
jmp dword [ecx*4 + 0x44339c]
xor ecx, ecx
test esi, esi
setne cl
jmp dword [ecx*4 + 0x4433a4]
mov dword [esp + 0x20], edx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x18], edi
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x4225f0
sub ecx, esi
shr ecx, 1
mov dword [esp + 0xec], ecx
lea eax, [ecx + 1]
xor edi, edi
push eax
call fcn.00435440
add esp, 4
mov dword [esp + 0x28], eax
movsx eax, byte [esi + edi*2]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4433ac]
mov eax, dword [esp + 0x28]
mov byte [eax + edi], 0
jmp 0x422611
inc ebx
movzx eax, byte [ebx]
movsx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x422610
cmp ecx, 0x20
je 0x422610
cmp al, 0x2b
sete cl
cmp al, 0x2d
setne dl
sete al
or al, cl
movzx eax, al
lea esi, [ebx + eax]
or dl, cl
mov byte [esp + 0x2c], dl
cmp byte [ebx + eax], 0x30
jne 0x42265a
movzx ecx, byte [ebx + eax + 1]
and cl, 0xdf
xor edx, edx
cmp cl, 0x58
sete dl
lea esi, [eax + edx*2]
add esi, ebx
mov dword [esp + 0x14], esi
xor ecx, ecx
xor edx, edx
xor eax, eax
jmp 0x422707
mov esi, dword [esp]
or eax, ecx
mov ecx, dword [esp + 0x28]
mov byte [ecx + edi], al
inc edi
movsx eax, byte [esi + edi*2]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4433ac]
mov dword [esp], esi
mov edx, eax
or edx, 0x20
add edx, 0xffffff9f
lea esi, [eax - 0x30]
mov ecx, eax
cmp esi, 0xa
jb 0x4226a9
mov ecx, 0xf
cmp edx, 6
jae 0x4226b3
add eax, 9
mov ecx, eax
mov eax, dword [esp]
movsx eax, byte [eax + edi*2 + 1]
mov edx, eax
or edx, 0x20
lea esi, [edx - 0x61]
add eax, 0xffffffd0
cmp eax, 0xa
jb 0x4226d0
mov eax, 0xff
shl ecx, 4
cmp esi, 6
jae 0x422670
add edx, 0xa9
mov eax, edx
jmp 0x422670
xor ebx, ebx
xor edi, edi
mov dword [esp], 0xffffffff
mov esi, 0xffffffff
mov dword [esp + 0x1c], 0x22
add ebx, dword [esp]
adc edi, esi
mov ecx, dword [esp + 0x1c]
mov edx, ebx
mov eax, edi
mov edi, eax
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x14]
movsx ecx, byte [esi]
lea ebx, [ecx - 0x30]
cmp ebx, 0xa
jb 0x422737
mov eax, ecx
and eax, 0xffffffdf
add eax, 0xffffffbf
cmp eax, 0x19
ja 0x42279e
or cl, 0x20
cmp cl, 0x66
jg 0x42279e
movsx ebx, cl
add ebx, 0xffffffa9
inc esi
mov dword [esp + 0x14], esi
mov esi, edx
and esi, edi
mov dword [esp], edx
mov edx, 0xffffffff
mov ecx, 0x22
mov eax, 0xffffffff
cmp esi, 0xffffffff
je 0x422707
mov ecx, dword [esp]
test edi, 0xf0000000
je 0x422770
mov ecx, 0x22
test ebx, ebx
jne 0x422707
jmp 0x4226e2
mov esi, edi
shld esi, ecx, 4
shl ecx, 4
mov edi, ebx
sar edi, 0x1f
mov eax, ebx
mov dword [esp], ecx
add eax, ecx
mov eax, edi
adc eax, esi
mov eax, 0xffffffff
mov ecx, 0x22
jb 0x422707
jmp 0x4226fa
mov dword [esp + 0x14], 0
mov eax, edx
neg eax
mov ecx, 0
sbb ecx, edi
cmp byte [esp + 0x2c], 0
jne case.default.0x4227dc
mov edx, eax
mov edi, ecx
mov dword [esp], edx
mov dword [esp + 0x2c], edi
mov edi, dword [case.0x4224f3.25]
mov ebx, dword [case.0x4224f3.29]
xor eax, eax
mov ecx, dword [esp + 0x10]
cmp ecx, dword [esp + 0x24]
setne al
jmp dword [eax*4 + 0x4433b4]
cmp dword [esp + 0x1c], 0x22
setne al
mov edx, dword [ecx + 4]
mov esi, edx
shr esi, 0x1c
xor esi, dword [esp + 0x2c]
shl edx, 4
or edx, 1
xor edx, dword [esp]
or edx, esi
sete dl
and dl, al
movzx eax, dl
jmp dword [eax*4 + 0x4433bc]
jmp edi
mov edx, 1
jmp case.0x4224f3.26
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
jmp ebx
jmp dword [edx*4 + 0x4433e4]
add ecx, 8
xor eax, eax
cmp ecx, dword [esp + 0x24]
setne al
jmp dword [eax*4 + 0x4433b4]
xor eax, eax
mov ebx, dword [esp + 0x14]
test ebx, ebx
setne al
jmp dword [eax*4 + 0x4433ec]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x20]
jmp dword [0x44340c]
mov eax, dword [esp + 0xec]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x34], eax
mov eax, 0xffffffff
nop
nop
nop
nop
nop
cmp byte [ebx + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x422906
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
push 0x1d768438
push dword [0x448ce4]
call fcn.00439500
add esp, 8
lea ecx, [esp + 0x90]
push ecx
push 1
push 0
push 0
lea ecx, [esp + 0x14]
push ecx
push 0
lea ecx, [esp + 0x48]
push ecx
call eax
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
jmp dword [ecx*4 + 0x4433f4]
mov eax, dword [esp + 0x8c]
jmp dword [0x44340c]
push dword [esp + 0x28]
mov esi, edx
call fcn.004087a0
mov edx, esi
mov eax, dword [esp + 0x90]
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x44341c]
jmp dword [0x4433fc]
movzx eax, byte [ebx]
test al, al
je 0x422961
lea ecx, [ebx + 1]
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x422956
mov word [edi], 0x203a
add edi, 2
mov edx, dword [esp + 0x90]
test edx, edx
je 0x4229eb
mov eax, dword [esp + 0x94]
mov ecx, edx
and ecx, 3
je 0x4229a3
mov esi, edi
xor edi, edi
movzx ebx, byte [eax]
cmp bl, 1
sbb eax, 0xffffffff
mov byte [esi + edi], bl
inc edi
cmp ecx, edi
jne 0x422986
add esi, edi
mov ecx, edx
sub ecx, edi
mov ebx, esi
mov edi, esi
jmp 0x4229a7
mov ebx, edi
mov ecx, edx
cmp edx, 4
mov esi, ebx
mov ebx, dword [esp + 0x14]
jb 0x4229eb
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [esi], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [esi + 1], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [esi + 2], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
lea edi, [esi + 4]
mov byte [esi + 3], dl
mov esi, edi
add ecx, 0xfffffffc
jne 0x4229b2
mov byte [edi], 0xa
inc edi
push 0x4835118f
push dword [0x448cd0]
call fcn.00439500
add esp, 8
push dword [esp + 0x94]
call eax
jmp case.0x4224f3.36
mov edi, eax
mov byte [edi], 0xa
inc edi
push 0x4835118f
push dword [0x448cd0]
call fcn.00439500
add esp, 8
push dword [esp + 0x94]
call eax
mov dl, 1
mov ebx, dword [esp + 0x14]
jmp dword [0x443404]
movzx eax, byte [ebx]
test al, al
je 0x422a5b
lea ecx, [ebx + 1]
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 0x422a50
mov word [edi], 0x203a
mov eax, edi
add eax, 2
mov edi, dword [esp + 0x90]
test edi, edi
je 0x422a0d
mov ecx, dword [esp + 0x94]
mov edx, edi
and edx, 3
je 0x422a9b
xor esi, esi
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + esi], bl
inc esi
cmp edx, esi
jne 0x422a80
add eax, esi
mov edx, edi
sub edx, esi
mov esi, eax
jmp 0x422a9d
mov edx, edi
cmp edi, 4
mov edi, esi
jb 0x422a0f
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 1], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 2], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
lea edi, [eax + 4]
mov byte [eax + 3], bl
mov eax, edi
add edx, 0xfffffffc
jne 0x422ab0
jmp 0x422a0f
jmp dword [0x44342c]
push dword [esp + 0xe4]
mov esi, edx
call fcn.004087a0
mov edx, esi
add esp, 4
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x3f], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0x62656467
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x12
ja 0x422b80
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + 0x71]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add cl, 0x5a
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x13
jb 0x422b50
mov ecx, dword [0x448cd8]
test ecx, ecx
je 0x422bea
mov edx, dword [esp + 0x30]
xor edi, edi
mov ebx, dword [0x448cdc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x5c3924fc
je 0x422bd0
inc edi
cmp ecx, edi
jne 0x422ba0
jmp 0x422bea
push eax
push 1
push dword [0x448ce0]
push ecx
call fcn.004373e0
add esp, 0x10
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
jmp dword [0x44333c]
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x422bea
push eax
push 1
push dword [0x448ce0]
push ecx
call fcn.004373e0
add esp, 0x10
mov edx, dword [case.0x4224f3.52]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
nop
nop
nop
nop
jmp edx
jmp dword [0x443444]
push dword [esp + 0x98]
mov esi, eax
call fcn.004087a0
mov eax, esi
add esp, 4
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x44344c]
mov esi, dword [esp + 0x18]
mov byte [esi], 0
sub esi, dword [esp + 0xc]
mov dword [esp + 0x30], 0x7080925
mov dword [esp + 0x34], 0xb1f1801
mov dword [esp + 0x38], 0x60e0005
mov dword [esp + 0x3c], 0x10002043
mov dword [esp + 0x40], 0xdfb9f615
mov dword [esp + 0x44], 0xf1ebf0fb
mov dword [esp + 0x48], 0xbf4bffb
mov word [esp + 0x4c], 0x85f6
mov dword [esp + 0x4e], 0
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x2d
ja 0x422cf0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x30]
lea edx, [eax + ecx]
add edx, 0x1bb1606f
add eax, 0x6f
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
add al, 0xf7
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x2e
jb 0x422cb0
mov ecx, dword [ebp + 8]
push esi
push dword [esp + 0x10]
lea eax, [esp + 0x38]
push eax
call fcn.00409140
jmp case.0x4224f3.56
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x44344c]
mov ecx, dword [0x44345c]
nop
nop
nop
nop
nop
nop
nop
jmp ecx
cmp edi, ebx
je 0x422d75
mov dword [esp + 0x20], eax
mov esi, edi
jmp 0x422d54
cmp esi, ebx
je 0x422d68
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x422d50
push eax
call fcn.004087a0
add esp, 4
jmp 0x422d50
push edi
call fcn.004087a0
add esp, 4
mov eax, dword [esp + 0x20]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret