Function at 0x4216b6
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x468
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x60], 0xc378c57b
mov dword [esp + 0x64], 0xcf6fc169
mov dword [esp + 0x68], 0xcbbecd7d
mov dword [esp + 0x6c], 0xd770c961
mov dword [esp + 0x70], 0xd3d4d57d
mov dword [esp + 0x74], 0
mov dword [esp + 0x2c], 0
mov eax, dword [esp + 0x2c]
cmp eax, 0x17
ja 0x420b73
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
movzx esi, byte [esp + eax + 0x60]
lea eax, [edx - 0x3b5e501f]
lea ecx, [edx + esi]
add ecx, 0xc4a1afe1
add edx, 0xe1
and edx, esi
and eax, esi
add eax, edx
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
add al, 0xd9
mov ecx, dword [esp + 0x2c]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
cmp eax, 0x18
jb 0x420b20
lea edi, [esp + 0x60]
lea ecx, [esp + 0x50]
push edi
call fcn.004345f0
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x442828]
lea ecx, [esp + 0x50]
push 0x410
call fcn.00434850
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x442830]
jmp dword [0x4428ec]
mov dword [esp + 0x60], 0xdab3d4c9
mov dword [esp + 0x64], 0xccdab9d4
mov dword [esp + 0x68], 0xd0c9dbbd
mov dword [esp + 0x6c], 0xa7ced6b1
mov dword [esp + 0x70], 0xf48bbaa6
mov dword [esp + 0x74], 0xef888689
mov dword [esp + 0x78], 0xe2ed8ee2
mov dword [esp + 0x7c], 0xe68fe09b
mov dword [esp + 0x80], 0x9684969a
mov dword [esp + 0x84], 0xfe93a185
mov dword [esp + 0x88], 0x5baa9d9d
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x37
ja 0x420c96
nop
nop
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 + 0x60]
mov edx, eax
and edx, 0x2231588e
xor eax, 0xa231588e
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
add al, 0x1e
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x38
jb 0x420c50
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x50]
push 0
push 0x2b
push edi
push eax
call fcn.00434e10
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
xor eax, eax
cmp esi, ecx
sete al
jmp dword [eax*4 + 0x442838]
mov eax, ecx
sub eax, esi
sar eax, 2
mov dword [esp + 0x4c], ecx
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.00408d80
add esp, 4
mov ebx, eax
mov dword [esp + 0x48], 0
xor eax, eax
cmp esi, dword [esp + 0x4c]
setne al
mov ecx, ebx
mov dword [esp + 0x1c], ebx
jmp dword [eax*4 + 0x442840]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], esi
mov esi, dword [esi]
push 0x400
push 0
push edi
call fcn.00408e00
add esp, 0xc
lea eax, [esp + 0x38]
lea ecx, [esp + 0x50]
push eax
push 0x400
push edi
push esi
call fcn.00434ca0
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
jmp dword [ecx*4 + 0x442848]
xor eax, eax
cmp dword [esp + 0x38], 0
sete al
jmp dword [eax*4 + 0x442850]
mov eax, 1
jmp 0x420d82
xor eax, eax
mov ecx, dword [case.0x420cb8.11]
mov esi, dword [esp + 0xc]
nop
nop
nop
nop
jmp ecx
jmp dword [eax*4 + 0x442868]
mov byte [esp + 0x45f], 0
movzx ecx, byte [esp + 0x60]
xor eax, eax
test cl, cl
je 0x420dc2
lea edx, [esp + 0x60]
cmp cl, 0x2e
je 0x420dc0
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x420db0
jmp 0x420dc2
mov eax, edx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442870]
lea edx, [eax + 1]
movzx ecx, byte [eax + 1]
xor edi, edi
test cl, cl
mov dword [esp + 0x18], edx
je 0x420e02
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x420e00
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x420df0
jmp 0x420e02
mov edi, edx
xor ecx, ecx
test edi, edi
setne cl
jmp dword [ecx*4 + 0x442878]
mov ecx, edi
mov esi, dword [esp + 0x18]
sub ecx, esi
lea edx, [ecx + ecx*2]
shr edx, 2
movzx eax, byte [eax + ecx]
cmp eax, 0x3d
je 0x420e2c
cmp eax, 0x2e
jne 0x420e2d
dec edx
movzx eax, byte [ecx + esi - 2]
cmp eax, 0x3d
mov dword [esp + 0x14], ecx
je 0x420e40
cmp eax, 0x2e
jne 0x420e47
mov eax, edx
not eax
lea edx, [eax + edx*2]
mov dword [esp + 0x5c], edx
lea eax, [edx + 1]
push eax
call fcn.00408d80
add esp, 4
mov dword [esp + 0x24], eax
cmp edi, esi
je 0x420f5e
xor edx, edx
mov edi, 2
jmp 0x420e90
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
cmp edi, ecx
mov edi, eax
jae 0x420f5e
mov dword [esp + 0x28], edx
mov esi, dword [esp + 0x18]
movzx eax, byte [esi + edi - 2]
push eax
call fcn.0040fb50
add esp, 4
mov ebx, eax
movzx eax, byte [esi + edi - 1]
push eax
call fcn.0040fb50
mov edx, dword [esp + 0x2c]
add esp, 4
mov bh, al
shl bl, 2
shr al, 4
and al, 3
or al, bl
mov ecx, dword [esp + 0x24]
mov byte [ecx + edx], al
inc edx
mov ecx, dword [esp + 0x14]
cmp edi, ecx
jae 0x420e80
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + edi]
push eax
mov esi, edx
call fcn.0040fb50
mov edx, esi
mov ecx, dword [esp + 0x18]
add esp, 4
cmp al, 0x40
je 0x420e80
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edx, dword [esp + 0x28]
lea esi, [edx + 2]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x24]
mov byte [esi + edx + 1], al
lea eax, [edi + 1]
cmp eax, ecx
jae 0x420e70
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.0040fb50
add esp, 4
cmp al, 0x40
je 0x420e6c
shl bl, 6
add al, bl
mov edx, dword [esp + 0x28]
mov ecx, edx
and ecx, 1
mov ebx, dword [esp + 0x20]
xor ebx, 1
lea ebx, [ebx + ecx*2]
mov byte [esi + edx + 2], al
mov edx, ebx
mov ecx, dword [esp + 0x14]
jmp 0x420e80
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x24]
mov byte [esi + eax], 0
push esi
call fcn.00401f60
add esp, 4
mov ebx, eax
jmp dword [0x442880]
push esi
call fcn.00408d90
add esp, 4
push ebx
call fcn.00402840
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442888]
mov esi, dword [esp + 0xc]
jmp 0x421099
mov dword [esp + 0x38], 0xa304181b
lea ecx, [esp + 0x3c]
mov dword [ecx + 7], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xe
ja 0x42101e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x46]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0xb39ea446
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x16
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xf
jb 0x420fe0
lea ecx, [esp + 0x38]
push ecx
push eax
call fcn.00402790
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442890]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
jmp 0x42106f
movzx ecx, byte [eax]
test cl, cl
je 0x42105d
inc eax
mov edx, dword [esp + 0x10]
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x421050
jmp 0x421061
mov edx, dword [esp + 0x10]
mov byte [edx], 0x3a
mov esi, dword [esp + 0xc]
mov byte [edx + 1], 0x20
add edx, 2
movzx eax, byte [esp + 0x60]
test al, al
je 0x42108b
lea ecx, [esp + 0x61]
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421080
mov byte [edx], 0xa
inc edx
mov dword [esp + 0x10], edx
mov al, 1
mov dword [esp + 0x48], eax
push ebx
call fcn.00402ab0
add esp, 4
mov ebx, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x421033.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
add esi, 4
mov eax, dword [case.0x421033.13]
mov ecx, dword [esp + 0x10]
lea edi, [esp + 0x60]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp esi, dword [esp + 0x4c]
setne al
jmp dword [eax*4 + 0x442840]
mov eax, dword [esp + 0x48]
mov edx, eax
and dl, 1
movzx edx, dl
jmp dword [edx*4 + 0x4428c8]
mov esi, eax
jmp dword [0x4428e0]
push ebx
call fcn.00408d90
add esp, 4
mov ebx, esi
and bl, 1
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
test esi, esi
jne 0x42112f
jmp 0x421142
xor ebx, ebx
test esi, esi
je 0x421142
cmp esi, ecx
je 0x421142
push esi
call fcn.00408d90
add esp, 4
jmp dword [0x4428ec]
jmp dword [0x4428ec]
jmp dword [0x4428d4]
mov byte [ecx], 0
mov esi, ecx
mov eax, ecx
sub eax, ebx
mov dword [esp + 0x60], 0x8f8a8959
mov dword [esp + 0x64], 0x9b77768d
mov dword [esp + 0x68], 0x80848689
mov dword [esp + 0x6c], 0x92827e5b
mov dword [esp + 0x70], 0x675d9c69
mov dword [esp + 0x74], 0x919b9e93
mov dword [esp + 0x78], 0x8b8e5793
mov word [esp + 0x7c], 0x3db0
mov dword [esp + 0x7e], 0
mov dword [esp + 0x82], 0
mov byte [esp + 0x86], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x26
ja 0x421214
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 + 0x60]
lea edi, [ecx + 0x84]
and edi, edx
mov ebx, 0xad36907b
sub ebx, ecx
or ebx, edx
not ebx
add ebx, edx
sub ebx, edi
mov dword [esp + 0x38], ebx
mov ecx, dword [esp + 0x38]
add cl, 0x64
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x60], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x27
jb 0x4211d0
lea edx, [esp + 0x60]
mov ecx, dword [ebp + 8]
push eax
mov ebx, dword [esp + 0x20]
push ebx
push edx
call fcn.00409710
mov ecx, esi
jmp case.0x420e09.23
lea edx, [esp + 0x60]
mov ecx, dword [ebp + 8]
push eax
mov ebx, dword [esp + 0x20]
push ebx
push edx
call fcn.00409710
mov ecx, esi
jmp dword [0x4428d8]
mov byte [ecx], 0
mov esi, ecx
mov eax, ecx
sub eax, ebx
mov dword [esp + 0x60], 0x8f8a8959
mov dword [esp + 0x64], 0x9b77768d
mov dword [esp + 0x68], 0x80848689
mov dword [esp + 0x6c], 0x92827e5b
mov dword [esp + 0x70], 0x675d9c69
mov dword [esp + 0x74], 0x919b9e93
mov dword [esp + 0x78], 0x8b8e5793
mov word [esp + 0x7c], 0x3db0
mov dword [esp + 0x7e], 0
mov dword [esp + 0x82], 0
mov byte [esp + 0x86], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x26
ja 0x421230
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 + 0x60]
lea edi, [ecx + 0x84]
and edi, edx
mov ebx, 0xad36907b
sub ebx, ecx
or ebx, edx
not ebx
add ebx, edx
sub ebx, edi
mov dword [esp + 0x38], ebx
mov ecx, dword [esp + 0x38]
add cl, 0x64
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x60], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x27
jb 0x4212d0
jmp 0x421230
jmp dword [0x442904]
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x50]
call fcn.00434990
lea ecx, [esp + 0x50]
call fcn.00434990
jmp dword [0x4428f4]
mov dword [esp + 0x40], 0x3b4a394a
mov dword [esp + 0x44], 0x3f753d7d
mov dword [esp + 0x48], 0x23552175
mov dword [esp + 0x4c], 0x27562556
mov dword [esp + 0x50], 0x2b54295d
mov dword [esp + 0x54], 0x2f6f2d65
mov dword [esp + 0x58], 0x5318516b
mov dword [esp + 0x5c], 0x571a5519
mov dword [esp + 0x60], 0x5b245911
mov dword [esp + 0x64], 0x5f2d5d2f
mov dword [esp + 0x68], 0x43344118
mov dword [esp + 0x6c], 0x4707453b
mov dword [esp + 0x70], 0x4b0f4934
mov dword [esp + 0x74], 0x4f3a4d36
mov dword [esp + 0x78], 0x731c712d
mov dword [esp + 0x7c], 0x771375e4
mov dword [esp + 0x80], 0x7b0d790a
mov dword [esp + 0x84], 0x7f1b7dee
mov dword [esp + 0x88], 0x630f611d
mov word [esp + 0x8c], 0x6562
mov byte [edi + 8], 0
mov dword [edi + 4], 0
mov dword [edi], 0
mov dword [esp + 0xa8], 0
mov ecx, dword [esp + 0xa8]
cmp ecx, 0x56
ja 0x4214b4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa8]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx - 0x48048359]
add ecx, 0xa7
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xdc], esi
mov ecx, dword [esp + 0xdc]
add cl, 0x6f
mov edx, dword [esp + 0xa8]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
cmp ecx, 0x57
jb 0x421460
lea ecx, [esp + 8]
lea edx, [esp + 0x40]
push 0
push 0
push eax
push ecx
push edx
call fcn.00439450
add esp, 0x14
shr eax, 0x1f
mov ecx, 4
jmp dword [eax*4 + 0x442910]
mov dword [esp + 4], ebx
lea ebx, [esp + 0x3c]
lea eax, [esp + 0x10]
push ebx
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x28]
call fcn.00439860
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442918]
mov ecx, dword [esp + 0x3c]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x42151e
mov eax, 0xffffffff
push eax
call fcn.00408d80
add esp, 4
mov esi, eax
mov dword [esp + 0x40], 0xb326b541
mov dword [esp + 0x44], 0xaf3cb13f
mov dword [esp + 0x48], 0xab38ad31
mov dword [esp + 0x4c], 0xa758a93e
mov dword [esp + 0x50], 0xa328a539
mov dword [esp + 0x54], 0x5fa0a13a
mov byte [edi - 0x32], 0
mov dword [edi - 0x36], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 0x1c
ja 0x4215ed
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0xd46de1e9
add eax, 0xd46de1e9
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xdc]
mov ecx, eax
xor ecx, 0xa0
and eax, 0x20
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 0x1d
jb 0x421580
push ebx
push esi
push 0
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x18]
call fcn.00439ec0
add esp, 0x14
shr eax, 0x1f
mov dword [esp + 4], esi
jmp dword [eax*4 + 0x442920]
mov dword [esp + 4], 0
jmp dword [0x442928]
push esi
call fcn.00408d90
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x442934]
xor ecx, ecx
cmp eax, 1
sete cl
jmp dword [ecx*4 + 0x442990]
mov ecx, 2
xor eax, eax
jmp dword [eax*4 + 0x442998]
mov ecx, dword [case.0x421609.21]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
movzx eax, al
jmp dword [eax*4 + 0x442978]
xor ecx, ecx
mov eax, 1
jmp dword [eax*4 + 0x442998]
xor ecx, ecx
jmp case.0x421609.12
mov eax, dword [esp + 0x40]
mov ecx, dword [case.0x421609.26]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
jmp dword [0x4429e4]
mov eax, 0x20119
xor ecx, ecx
jmp dword [ecx*4 + 0x442908]
mov ecx, 2
jmp dword [0x442950]
mov eax, dword [case.0x4214d3.1]
jmp eax
mov eax, dword [case.0x4214d3.43]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp ecx, 4
setl al
jmp dword [eax*4 + 0x4429c0]
sete al
movzx eax, al
jmp dword [eax*4 + 0x4429c8]
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x4429d0]
xor eax, eax
mov ebx, dword [esp + 4]
test ebx, ebx
setne al
jmp dword [eax*4 + 0x442940]
lea esi, [esp + 0x40]
jmp dword [0x44295c]
mov eax, dword [esp + 8]
mov dword [esp + 0x40], 0xead5d4d7
mov byte [edi - 0x46], 0
mov dword [edi - 0x4a], 0
mov dword [esp + 0xa8], 0
mov ecx, dword [esp + 0xa8]
cmp ecx, 8
ja 0x4217c4
nop
nop
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa8]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + edx]
add ecx, 0x5d
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0xdee99c5d
mov dword [esp + 0xdc], esi
mov ecx, dword [esp + 0xdc]
add cl, 0x75
mov edx, dword [esp + 0xa8]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
cmp ecx, 9
jb 0x421770
mov ecx, dword [0x44826c]
test ecx, ecx
je case.0x421609.5
mov edx, dword [esp + 0x40]
xor esi, esi
mov ebx, dword [0x448270]
nop
nop
nop
nop
nop
nop
cmp dword [ebx + esi*8], 0x11081610
je 0x4217f0
inc esi
cmp ecx, esi
jne 0x4217e0
jmp case.0x421609.5
mov ecx, dword [ebx + esi*8 + 4]
cmp ecx, edx
je case.0x421609.5
push eax
push 1
push dword [0x448274]
push ecx
call fcn.00436280
add esp, 0x10
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov dword [esp + 0x40], 0xead5d4d7
mov byte [edi - 0x46], 0
mov dword [edi - 0x4a], 0
mov dword [esp + 0xa8], 0
mov ecx, dword [esp + 0xa8]
cmp ecx, 8
ja 0x421894
nop
nop
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa8]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + edx]
add ecx, 0x5d
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0xdee99c5d
mov dword [esp + 0xdc], esi
mov ecx, dword [esp + 0xdc]
add cl, 0x75
mov edx, dword [esp + 0xa8]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
cmp ecx, 9
jb 0x421840
mov ecx, dword [0x44826c]
test ecx, ecx
je 0x4218e0
mov edx, dword [esp + 0x40]
xor esi, esi
mov ebx, dword [0x448270]
nop
nop
nop
nop
nop
nop
cmp dword [ebx + esi*8], 0x11081610
je 0x4218c0
inc esi
cmp ecx, esi
jne 0x4218b0
jmp 0x4218e0
mov ecx, dword [ebx + esi*8 + 4]
cmp ecx, edx
je 0x4218e0
push eax
push 1
push dword [0x448274]
push ecx
call fcn.00436280
add esp, 0x10
nop
nop
nop
nop
nop
nop
jmp dword [0x442938]
push esi
call fcn.00438a10
add esp, 4
push esi
call fcn.00438a10
add esp, 4
jmp dword [0x442964]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4429e8]
mov dword [esp + 0x40], 0x2b852d88
mov dword [esp + 0x44], 0x178429bb
mov dword [esp + 0x48], 0x13bb15be
mov dword [esp + 0x4c], 0x1fba11bb
mov dword [esp + 0x50], 0x1b891db3
mov dword [esp + 0x54], 0x7ac198a
mov dword [esp + 0x58], 0x3a905ad
mov dword [esp + 0x5c], 0xf9401d2
mov dword [esp + 0x60], 0xba00da0
lea eax, [esp + 0x64]
mov word [esp + 0x64], 0x908
mov dword [esp + 0x66], 0
mov byte [esp + 0x6a], 0
mov dword [esp + 0xa8], 0
mov ecx, dword [esp + 0xa8]
cmp ecx, 0x2a
ja 0x4219f0
nop
nop
nop
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa8]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + 0xda]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add ecx, 0xe9c3ccda
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0xdc]
mov edx, ecx
xor edx, 9
and ecx, 9
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0xa8]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
cmp ecx, 0x2b
jb 0x421990
lea edi, [esp + 0xa8]
lea edx, [esp + 0x40]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xcc]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x421a20
cmp eax, 0xffffffd9
jge 0x421a4d
mov eax, 0xffffffff
jmp 0x421a50
jmp dword [0x4429fc]
xor eax, eax
jmp 0x422b9c
add eax, 0x26
push eax
call fcn.00408d80
add esp, 4
mov edi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x421a81
lea edx, [ebx + 2]
mov eax, edi
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 0x421a70
mov word [eax], 0
movzx ecx, word [esp + 0xa8]
test cx, cx
je 0x421ab1
lea edx, [esp + 0xaa]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421aa0
mov word [eax], 0
jmp dword [0x442a00]
push ebx
call fcn.00408d90
add esp, 4
lea eax, [esp + 0x10]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.00438c30
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442a08]
xor esi, esi
xor ebx, ebx
jmp dword [0x442a78]
push edi
call fcn.00408d90
add esp, 4
xor eax, eax
cmp esi, ebx
sete al
jmp dword [eax*4 + 0x442a80]
mov dword [esp + 0x24], esi
xor eax, eax
jmp 0x422bc2
lea eax, [esp + 0x3c]
push 0
push eax
push dword [esp + 0x18]
call fcn.00438fa0
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
mov dword [esp + 0x24], 0
mov dword [esp + 0x9c], edi
jmp dword [eax*4 + 0x442a10]
mov esi, dword [esp + 0x3c]
lea eax, [esi + 1]
push eax
call fcn.00408d80
add esp, 4
push 0
push esi
mov dword [esp + 0x3c], eax
push eax
push dword [esp + 0x1c]
call fcn.004390a0
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
mov dword [esp + 0x24], 0
jmp dword [eax*4 + 0x442a18]
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov byte [eax + esi], 0
push 0x20
call fcn.00408d80
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 + 0xa0], eax
mov ecx, eax
push esi
push dword [esp + 0x38]
call fcn.00423f60
movzx eax, al
xor ebx, ebx
xor edx, edx
jmp dword [eax*4 + 0x442a20]
mov dword [esp + 0x40], 0xeffee00b
mov dword [esp + 0x44], 0xf0eefeeb
mov dword [esp + 0x48], 0xeffb072f
mov dword [esp + 0x4c], 0xfad50ae4
mov dword [esp + 0x50], 0x14030e1a
mov dword [esp + 0x54], 0x201eed3
mov dword [esp + 0x58], 0x171e161f
mov word [esp + 0x5c], 0xb517
mov dword [esp + 0x5e], 0
mov dword [esp + 0x61], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x24
ja 0x421c86
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0x9aba0173
add eax, 0x9aba0173
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xdc], edx
mov eax, dword [esp + 0xdc]
add al, 0xdb
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x25
jb 0x421c40
mov ecx, dword [esp + 0xa0]
lea eax, [esp + 0x40]
push eax
call fcn.00424150
xor ecx, ecx
test eax, eax
setne cl
xor edx, edx
jmp dword [ecx*4 + 0x442a28]
mov dword [esp + 0x24], edx
jmp dword [0x442a38]
mov esi, dword [esp + 0xa0]
mov ecx, esi
call fcn.004242c0
push esi
call fcn.00408d90
add esp, 4
mov eax, dword [case.0x4214d3.66]
nop
nop
nop
jmp eax
mov eax, dword [case.0x421ca0.12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x442a60]
push dword [esp + 0x34]
call fcn.00408d90
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x442a70]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], 0xead5d4d7
mov dword [esp + 0x44], 0
mov byte [esp + 0x48], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 8
ja 0x421d75
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + edx]
add ecx, 0x5d
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0xdee99c5d
mov dword [esp + 0xdc], esi
mov ecx, dword [esp + 0xdc]
add cl, 0x75
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 9
jb 0x421d30
mov ecx, dword [0x44826c]
test ecx, ecx
je 0x421dac
mov edx, dword [esp + 0x40]
xor esi, esi
mov edi, dword [0x448270]
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x421da0
inc esi
cmp ecx, esi
jne 0x421d90
jmp 0x421dac
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x422330
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x9c]
jmp dword [0x442a78]
xor eax, eax
cmp esi, ebx
sete al
jmp dword [eax*4 + 0x442a80]
mov dword [esp + 0x30], ebx
mov eax, ebx
mov dword [esp + 0x24], esi
sub eax, esi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.00408d80
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], 0xab1eadc1
mov dword [esp + 0x44], 0x9739a93b
mov dword [esp + 0x48], 0x93069535
mov dword [esp + 0x4c], 0x9f0e91d1
mov dword [esp + 0x50], 0x9bd69d0c
mov dword [esp + 0x54], 0x871a9939
mov dword [esp + 0x58], 0x83ef8525
mov dword [esp + 0x5c], 0x8f318124
mov dword [esp + 0x60], 0x8b278d10
mov dword [esp + 0x64], 0xf7638929
mov dword [esp + 0x68], 0xf366f550
mov dword [esp + 0x6c], 0xff51f163
mov dword [esp + 0x70], 0xfb6efd5d
mov dword [esp + 0x74], 0xe77cf9aa
mov dword [esp + 0x78], 0xe348e548
lea eax, [esp + 0x7c]
mov word [esp + 0x7c], 0xe1e0
mov dword [esp + 0x7e], 0
mov dword [esp + 0x82], 0
mov word [esp + 0x86], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x47
ja 0x421ef2
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + edx]
add esi, 0xf7d2ac9a
add ecx, 0xf7d2ac9a
and ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0xdc]
add cl, 0xca
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x48
jb 0x421ea0
lea esi, [esp + 0xdc]
lea edx, [esp + 0x40]
mov ecx, 0xf
mov edi, esi
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
lea ebx, [esp + 0x3c]
push ebx
push 0
push 0
push 0x1e
push esi
push 0
call dword [0x447260]
mov edi, dword [esp + 0x3c]
test edi, edi
jns 0x421f3e
mov eax, 0xffffffff
jmp 0x421f41
lea eax, [edi + edi]
push eax
call fcn.00408d80
add esp, 4
mov esi, eax
push ebx
push edi
push eax
push 0x1e
lea eax, [esp + 0xec]
push eax
push 0
call dword [0x447260]
lea eax, [esp + 0xd0]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0xb4], esi
push esi
call fcn.00438c30
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442a88]
xor ecx, ecx
mov esi, dword [esp + 0x2c]
mov edi, esi
mov ebx, dword [esp + 0x30]
jmp dword [0x442b58]
lea eax, [esp + 0xd8]
push 0
push eax
push dword [esp + 0xd8]
call fcn.00438fa0
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 0x18], 0
mov esi, dword [esp + 0x2c]
jmp dword [eax*4 + 0x442a90]
mov esi, dword [esp + 0xd8]
lea eax, [esi + 1]
push eax
call fcn.00408d80
add esp, 4
push 0
push esi
mov dword [esp + 0xa4], eax
push eax
push dword [esp + 0xdc]
call fcn.004390a0
add esp, 0x10
not eax
shr eax, 0x1f
xor edx, edx
mov esi, dword [esp + 0x2c]
jmp dword [eax*4 + 0x442a98]
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0x9c]
mov byte [edi + esi], 0
push 0x20
call fcn.00408d80
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 + 0xd4], eax
mov ecx, eax
push esi
push edi
call fcn.00423f60
movzx eax, al
xor edx, edx
mov esi, dword [esp + 0x2c]
jmp dword [eax*4 + 0x442aa0]
mov dword [esp + 0x40], 0xafbeb0cb
mov dword [esp + 0x44], 0x404e3eab
mov dword [esp + 0x48], 0x4f3b370f
mov dword [esp + 0x4c], 0x3a054a54
mov dword [esp + 0x50], 0x44334e5a
mov dword [esp + 0x54], 0x595d3003
mov dword [esp + 0x58], 0x47555658
mov dword [esp + 0x5c], 0x5f592637
mov word [esp + 0x60], 0xc159
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov byte [esp + 0x6a], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x2a
ja 0x42221f
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx esi, byte [esp + eax + 0x40]
lea eax, [edx + 0x29a454fb]
mov ecx, eax
and ecx, esi
xor eax, esi
mov edi, 0xd65bab04
sub edi, edx
or edi, esi
add edi, edx
add edi, ecx
sub eax, edi
lea eax, [eax + ecx*2]
add eax, 0xd65bab04
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x23
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x2b
jb 0x4221d0
mov ecx, dword [esp + 0xd4]
lea eax, [esp + 0x40]
push eax
call fcn.00424150
xor ebx, ebx
test eax, eax
setne bl
mov ecx, dword [esp + 0x2c]
mov esi, ecx
xor edx, edx
jmp dword [ebx*4 + 0x442aa8]
jmp dword [0x442b48]
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0xd4]
mov ecx, edi
call fcn.004242c0
push edi
call fcn.00408d90
add esp, 4
jmp dword [0x442b50]
mov dword [esp + 0x18], edx
jmp dword [0x442b50]
push dword [esp + 0x9c]
call fcn.00408d90
add esp, 4
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x40], 0xead5d4d7
mov dword [esp + 0x44], 0
mov byte [esp + 0x48], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 8
ja 0x4222ff
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + edx]
add ecx, 0x5d
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0xdee99c5d
mov dword [esp + 8], esi
mov ecx, dword [esp + 8]
add cl, 0x75
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 9
jb 0x4222c0
mov ecx, dword [0x44826c]
test ecx, ecx
mov ebx, dword [esp + 0x30]
je 0x42235b
mov edx, dword [esp + 0x40]
xor esi, esi
mov edi, dword [0x448270]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x422353
inc esi
cmp ecx, esi
jne 0x422320
jmp 0x42235b
push eax
push 1
push dword [0x448274]
push ecx
call fcn.00436280
add esp, 0x10
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x9c]
jmp dword [0x442a78]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42239e
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jmp dword [0x442b58]
push eax
push 1
push dword [0x448274]
push ecx
call fcn.00436280
add esp, 0x10
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jmp dword [0x442b58]
add eax, 8
xor edi, edi
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
xor ebx, ebx
mov dword [esp + 0x18], 0
xor edx, edx
jmp dword [eax*4 + 0x442a30]
not eax
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x24]
mov dword [edx + esi*8 + 4], eax
add ebx, 8
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
mov edi, edx
jmp dword [eax*4 + 0x442a30]
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov edx, ebx
sub edx, edi
sar edx, 3
mov eax, dword [esp + 0x18]
cmp ebx, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0xa4], ecx
je 0x422443
mov dword [esp + 0x30], ebx
mov ebx, edi
mov ecx, edx
jmp 0x4224bb
lea eax, [edx + 1]
mov esi, edx
shr esi, 1
add esi, edx
cmp esi, eax
ja 0x422452
mov esi, eax
lea eax, [esi*8]
push eax
call fcn.00408d80
add esp, 4
mov ebx, eax
test edi, edi
je 0x4224ad
mov edx, dword [esp + 0x18]
cmp edi, edx
je 0x4224a4
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [edi + eax]
mov dword [ebx + eax], ecx
mov ecx, dword [edi + eax + 4]
mov dword [ebx + eax + 4], ecx
mov dword [edi + eax], 0
lea ecx, [edi + eax]
add ecx, 8
add eax, 8
cmp ecx, edx
jne 0x422480
mov edx, edi
push edx
call fcn.00408d90
add esp, 4
mov ecx, dword [esp + 0x28]
lea eax, [ebx + ecx*8]
mov dword [esp + 0x30], eax
lea eax, [ebx + esi*8]
mov edx, dword [esp + 4]
mov dword [esp + 0x18], eax
mov dword [ebx + ecx*8], 0
mov dword [esp + 0x24], ebx
mov dword [ebx + ecx*8 + 4], 0
mov ecx, 0xffffffff
mov ebx, 0xfffffffe
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
add ebx, 2
cmp byte [edx + ecx + 1], 0
lea ecx, [ecx + 1]
lea eax, [eax + 2]
jne 0x4224f0
and ebx, 2
mov eax, ecx
xor eax, 1
mov dword [esp + 0x38], eax
lea edi, [ebx + eax]
push edi
mov dword [esp + 0x30], ecx
call fcn.00408d80
add esp, 4
mov edx, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx*8], edx
mov eax, edi
mov dword [esp + 0x1c], edi
mov ecx, edi
shr ecx, 2
mov edx, dword [esp + 4]
mov edi, dword [esp + 0x20]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, eax
and edx, 0xfffffffc
mov edi, dword [esp + 0x20]
add edi, edx
add edx, dword [esp + 4]
mov ecx, eax
shr ecx, 1
and ecx, 1
mov eax, edx
mov dword [esp + 0x20], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esp + 0x1c]
test byte [esp + 0x2c], 1
jne 0x422584
mov eax, edi
and eax, 2
movzx ecx, byte [edx + eax]
mov edx, dword [esp + 0x20]
mov byte [edx + eax], cl
dec edi
je 0x4225b0
mov ecx, edi
mov edx, dword [esp + 0x38]
lea eax, [edx - 2]
add eax, ebx
jne 0x4225c6
mov eax, 0xffffffff
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 4]
test cl, 1
je 0x4223f0
jmp 0x422620
xor eax, eax
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0x28]
jmp 0x4223f9
mov dword [esp + 0x1c], ecx
and esi, 2
lea ecx, [edx + esi]
dec ecx
and ecx, 0xfffffffe
mov eax, 0xffffffff
mov edi, dword [esp + 4]
nop
nop
nop
mov edx, eax
shr edx, 8
xor al, byte [edi]
movzx eax, al
xor edx, dword [eax*4 + 0x43c7a0]
mov eax, edx
shr eax, 8
xor dl, byte [edi + 1]
add edi, 2
movzx edx, dl
xor eax, dword [edx*4 + 0x43c7a0]
add ecx, 0xfffffffe
jne 0x4225e0
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
test cl, 1
je 0x4223f0
mov ecx, eax
shr ecx, 8
xor al, byte [edi]
movzx eax, al
xor ecx, dword [eax*4 + 0x43c7a0]
mov eax, ecx
jmp 0x4223f0
add eax, 8
mov esi, ecx
xor edx, edx
mov ecx, eax
jmp 0x422667
push dword [esp + 0x34]
mov esi, edx
call fcn.00408d90
mov ecx, dword [esp + 0x3c]
mov edx, esi
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ecx, 4
mov esi, dword [esp + 0x1c]
mov ecx, dword [ecx]
mov eax, dword [case.0x42223f.5]
nop
nop
jmp eax
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x442ac0]
mov dword [esp + 0x1c], esi
mov ebx, dword [ecx]
xor edi, edi
cmp dword [ecx + 0x18], 3
jne 0x422691
mov edi, dword [ecx + 0x10]
mov eax, dword [case.0x42223f.10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x442ad8]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x442ae0]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x18], edx
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x422716
sub ecx, edi
inc ecx
shr ecx, 1
mov dword [esp + 0xa0], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408d80
add esp, 4
mov ecx, dword [case.0x422803.51]
mov dword [esp + 0x28], ecx
mov ecx, dword [case.0x422803.48]
mov dword [esp + 0x20], ecx
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
mov dword [esp + 0x34], eax
mov dword [esp + 4], eax
jmp dword [edx*4 + 0x442ae8]
mov eax, dword [esp + 4]
mov byte [eax], 0
jmp 0x422731
inc ebx
movzx eax, byte [ebx]
movsx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x422730
cmp ecx, 0x20
je 0x422730
cmp al, 0x2b
sete cl
cmp al, 0x2d
setne dl
sete al
or al, cl
movzx eax, al
lea esi, [ebx + eax]
mov dword [esp + 0x20], esi
or dl, cl
mov byte [esp + 0x28], dl
cmp byte [ebx + eax], 0x30
jne 0x422782
movzx ecx, byte [ebx + eax + 1]
and cl, 0xdf
xor edx, edx
cmp cl, 0x58
sete dl
lea eax, [eax + edx*2]
add eax, ebx
mov dword [esp + 0x20], eax
xor ecx, ecx
xor eax, eax
xor edx, edx
jmp 0x4228b6
mov ecx, dword [esp + 4]
mov byte [ecx], al
inc ecx
mov dword [esp + 4], ecx
movsx ecx, byte [esi]
xor eax, eax
test ecx, ecx
setne al
mov edi, esi
jmp dword [eax*4 + 0x442ae8]
lea esi, [edi + 1]
mov eax, ecx
or eax, 0x20
add eax, 0xffffff9f
cmp eax, 5
ja case.default.0x4227d5
mov eax, ecx
or eax, 0xffffffbe
and ecx, 0xffffff9e
add eax, ecx
add eax, 0xb
movzx ecx, byte [esi]
xor edx, edx
test cl, cl
setne dl
jmp dword [edx*4 + 0x442af0]
lea edx, [ecx - 0x30]
mov eax, 0xffffffff
cmp edx, 9
ja case.default.0x422803
mov eax, ecx
xor eax, 0xffffffcf
and ecx, 0xffffffcf
lea eax, [eax + ecx*2]
inc eax
movzx ecx, byte [esi]
xor edx, edx
test cl, cl
setne dl
jmp dword [edx*4 + 0x442af0]
jmp dword [esp + 0x28]
mov esi, edi
jmp 0x422860
movsx eax, byte [esi]
mov ecx, eax
or ecx, 0x20
add ecx, 0xffffff9f
cmp ecx, 5
ja 0x422840
mov ecx, eax
or ecx, 0xffffffbe
and eax, 0xffffff9e
add ecx, eax
add ecx, 0xb
jmp 0x422859
lea edx, [eax - 0x30]
mov ecx, 0xffffffff
cmp edx, 9
ja 0x422859
mov ecx, eax
xor ecx, 0xffffffcf
and eax, 0xffffffcf
lea ecx, [ecx + eax*2]
inc ecx
movzx eax, cl
movzx ecx, byte [esi + 1]
shl eax, 4
add esi, 2
movsx ecx, cl
mov edx, ecx
or edx, 0x20
add edx, 0xffffff9f
cmp edx, 5
ja 0x422890
mov edx, ecx
or edx, 0xffffffbe
and ecx, 0xffffff9e
add ecx, edx
add ecx, 0xb
or eax, ecx
jmp dword [esp + 0x20]
lea edx, [ecx - 0x30]
mov edi, 0xffffffff
cmp edx, 9
ja 0x4228a9
mov edx, ecx
xor edx, 0xffffffcf
and ecx, 0xffffffcf
lea edi, [edx + ecx*2]
inc edi
or eax, edi
jmp dword [esp + 0x20]
mov eax, edx
mov ecx, edi
mov edx, ebx
mov edi, edx
mov esi, eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x20]
movsx ecx, byte [eax]
lea eax, [ecx - 0x30]
cmp eax, 0xa
jae 0x4228f0
mov eax, ecx
xor eax, 0xffffffcf
and ecx, 0xffffffcf
lea ebx, [eax + ecx*2]
inc ebx
cmp ebx, 0xf
jle 0x422912
jmp 0x422985
mov edx, ecx
and edx, 0xffffffdf
lea eax, [edx - 0x41]
cmp eax, 0x1a
jae 0x422985
mov ebx, ecx
xor ebx, 0x20
add ebx, ecx
sub ebx, edx
add ebx, 0xffffffa9
cmp ebx, 0xf
jg 0x422985
inc dword [esp + 0x20]
mov ecx, esi
and ecx, edi
mov eax, 0xffffffff
mov edx, 0xffffffff
cmp ecx, 0xffffffff
mov ecx, 0x22
je 0x4228b6
mov ecx, edi
shld edi, esi, 4
shr ecx, 0x1c
shl esi, 4
mov eax, ecx
neg eax
mov edx, 0
sbb edx, edx
or edi, edx
or edx, esi
mov eax, edi
mov edi, ebx
sar edi, 0x1f
add edx, ebx
adc edi, eax
mov ebx, 0xffffffff
mov esi, 0xffffffff
jb 0x422964
mov ebx, edi
mov esi, edx
mov edi, 0x22
mov eax, 0x22
jb 0x422974
mov eax, dword [esp + 4]
mov edx, esi
test ecx, ecx
jne 0x4228b0
mov edi, eax
jmp 0x4228b0
mov eax, esi
neg eax
mov ecx, 0
sbb ecx, edi
cmp byte [esp + 0x28], 0
jne 0x42299b
mov esi, eax
mov edi, ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x20], edi
mov eax, dword [case.0x422803.56]
mov ebx, dword [esp + 0x30]
nop
nop
nop
nop
jmp eax
xor esi, esi
xor eax, eax
mov edx, dword [esp + 0x24]
cmp edx, ebx
setne al
jmp dword [eax*4 + 0x442b18]
mov esi, dword [edx]
xor eax, eax
jmp dword [eax*4 + 0x442b28]
add edx, 8
xor eax, eax
cmp edx, ebx
setne al
jmp dword [eax*4 + 0x442b18]
cmp dword [esp + 4], 0x22
setne al
mov ecx, dword [edx + 4]
mov edi, ecx
shr edi, 0x1c
xor edi, dword [esp + 0x20]
shl ecx, 4
or ecx, 1
xor ecx, dword [esp + 0x28]
or ecx, edi
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x442b20]
mov eax, 1
jmp dword [eax*4 + 0x442b28]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x442b30]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
jmp dword [0x442b40]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], eax
mov eax, 0xffffffff
nop
nop
nop
nop
nop
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x422ab5
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
push 0x932a8d34
push dword [0x448278]
call fcn.00438180
add esp, 8
lea ecx, [esp + 0x10]
push ecx
push 1
push 0
push 0
lea ecx, [esp + 0x18]
push ecx
push 0
lea ecx, [esp + 0x58]
push ecx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442b38]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
jmp dword [0x442b40]
movzx eax, byte [esi]
test al, al
je 0x422aed
inc esi
mov ecx, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x422ae0
jmp 0x422af1
mov ecx, dword [esp + 0x1c]
mov word [ecx], 0x203a
mov eax, ecx
add eax, 2
mov esi, dword [esp + 0x10]
test esi, esi
je 0x422b2b
mov ecx, dword [esp + 0x14]
mov edx, esi
and edx, 3
je 0x422b2f
xor edi, edi
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + edi], bl
inc edi
cmp edx, edi
jne 0x422b10
add eax, edi
mov edx, esi
sub edx, edi
mov edi, eax
jmp 0x422b31
mov edi, eax
jmp 0x422b6f
mov edx, esi
cmp esi, 4
jb 0x422b6f
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 0x422b36
mov byte [edi], 0xa
inc edi
mov dword [esp + 0x1c], edi
push 0x2e0ec9bb
push dword [0x448264]
call fcn.00438180
add esp, 8
push dword [esp + 0x14]
call eax
mov dl, 1
mov ecx, dword [esp + 0x38]
jmp dword [0x442b40]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0x24]
test esi, esi
je 0x422b9c
cmp esi, ebx
je 0x422b9c
mov edi, eax
jmp 0x422be4
cmp esi, ebx
je 0x422bf8
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x422be0
push eax
call fcn.00408d90
add esp, 4
jmp 0x422be0
push dword [esp + 0x24]
call fcn.00408d90
add esp, 4
mov eax, edi
jmp 0x422b9c