Function at 0x422c3a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x490
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x80], 0x4bd045d3
mov dword [esp + 0x84], 0x4fef49e1
mov dword [esp + 0x88], 0x339e4ddd
mov dword [esp + 0x8c], 0x37a83199
mov dword [esp + 0x90], 0x3b34359d
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov byte [esp + 0xa4], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x24
ja 0x420ddd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
movzx edx, byte [esp + eax + 0x80]
lea eax, [ecx + edx]
add eax, 0xcffc835
add ecx, 0xcffc835
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x8d
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x80], al
mov eax, dword [esp + 0x20]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x25
jb 0x420d90
lea eax, [esp + 0x80]
lea ecx, [esp + 0x6c]
mov esi, eax
push eax
call fcn.00435f50
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44430c]
lea ecx, [esp + 0x6c]
push 0x410
call fcn.00436250
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x444314]
mov dword [esp + 0x80], 0x724b0471
mov dword [esp + 0x84], 0xc725174
mov dword [esp + 0x88], 0x7871735d
mov dword [esp + 0x8c], 0x776e7659
mov dword [esp + 0x90], 0x14434276
mov dword [esp + 0x94], 0x6f404641
mov dword [esp + 0x98], 0x6a6d4e6a
mov dword [esp + 0x9c], 0x566f6843
mov dword [esp + 0xa0], 0x76444642
mov dword [esp + 0xa4], 0x5e7b9945
mov dword [esp + 0xa8], 0xa3927d7d
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb3], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x36
ja 0x420f1d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
movzx edx, byte [esp + eax + 0x80]
lea eax, [ecx + edx]
add eax, 0x3be15542
add ecx, 0x3be15542
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x32
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x80], al
mov eax, dword [esp + 0x20]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x37
jb 0x420ed0
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x6c]
push 0
push 0x2b
mov ebx, esi
push esi
push eax
call fcn.004367f0
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
xor eax, eax
cmp esi, ecx
sete al
jmp dword [eax*4 + 0x44431c]
mov eax, ecx
sub eax, esi
sar eax, 2
imul eax, eax, 0x421
push eax
mov edi, ecx
call fcn.00435d80
add esp, 4
mov dword [esp + 0x5c], 0
xor ecx, ecx
mov dword [esp + 0x60], edi
cmp esi, edi
setne cl
mov dword [esp + 0x78], eax
mov dword [esp + 0x10], eax
jmp dword [ecx*4 + 0x444334]
mov esi, dword [esp + 0x68]
add esi, 4
xor eax, eax
cmp esi, dword [esp + 0x60]
setne al
jmp dword [eax*4 + 0x444334]
mov dword [esp + 0x68], esi
mov esi, dword [esi]
push 0x400
push 0
push ebx
call fcn.00408680
add esp, 0xc
lea eax, [esp + 0x20]
lea ecx, [esp + 0x6c]
push eax
push 0x400
push ebx
push esi
call fcn.00436670
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
jmp dword [ecx*4 + 0x44433c]
xor eax, eax
cmp dword [esp + 0x20], 0
sete al
jmp dword [eax*4 + 0x444344]
mov eax, 1
jmp dword [eax*4 + 0x44434c]
xor eax, eax
jmp dword [eax*4 + 0x44434c]
mov byte [esp + 0x47f], 0
movzx ecx, byte [esp + 0x80]
xor eax, eax
test cl, cl
je 0x421042
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x421040
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x421030
jmp 0x421042
mov eax, edx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444354]
lea edi, [eax + 1]
movzx ecx, byte [eax + 1]
mov edx, dword [case.0x421049.5]
mov dword [esp + 0x14], edi
jmp case.0x421049.2
mov esi, edi
mov edi, dword [esp + 0x14]
jmp edx
xor esi, esi
test cl, cl
je 0x421076
mov ch, cl
cmp ch, 0x2e
je 0x421070
mov ch, byte [edi + 1]
inc edi
test ch, ch
jne 0x421080
jmp 0x421072
xor ecx, ecx
test esi, esi
setne cl
jmp dword [ecx*4 + 0x44436c]
mov ecx, esi
sub ecx, edi
lea edx, [ecx + ecx*2]
shr edx, 2
movzx eax, byte [eax + ecx]
cmp eax, 0x3d
je 0x4210b6
cmp eax, 0x2e
jne 0x4210b7
dec edx
movzx eax, byte [ecx + edi - 2]
cmp eax, 0x3d
mov dword [esp + 0x58], ecx
je 0x4210ca
cmp eax, 0x2e
jne 0x4210cb
dec edx
mov dword [esp + 0x7c], edx
lea eax, [edx + 1]
push eax
call fcn.00435d80
add esp, 4
mov dword [esp + 0x18], eax
cmp esi, edi
je 0x4211e1
xor edi, edi
mov esi, 2
jmp 0x421112
mov edx, dword [esp + 0x64]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esi + 4]
add esi, 2
mov edi, edx
cmp esi, ecx
mov esi, eax
jae 0x4211e1
mov ebx, dword [esp + 0x14]
movzx eax, byte [ebx + esi - 2]
push eax
call fcn.0040f210
add esp, 4
mov byte [esp + 0x1c], al
movzx eax, byte [ebx + esi - 1]
push eax
call fcn.0040f210
add esp, 4
mov bh, al
movzx ecx, byte [esp + 0x1c]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 0x18]
mov byte [ecx + edi], al
lea edx, [edi + 1]
mov ecx, dword [esp + 0x58]
cmp esi, ecx
jae 0x421100
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + esi]
push eax
mov edi, edx
call fcn.0040f210
mov edx, edi
mov ecx, dword [esp + 0x5c]
add esp, 4
cmp al, 0x40
je 0x421100
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edi, dword [esp + 0x1c]
lea edx, [edi + 2]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x18]
mov byte [edx + edi + 1], al
lea eax, [esi + 1]
cmp eax, ecx
jae 0x4210f0
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.0040f210
mov ecx, dword [esp + 0x5c]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x64]
je 0x421100
shl bl, 6
add al, bl
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov byte [edx + edi + 2], al
add edi, 3
mov edx, edi
jmp 0x421100
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x18]
mov byte [esi + eax], 0
push esi
call fcn.004016d0
add esp, 4
mov ebx, eax
jmp dword [0x444374]
push esi
call fcn.00408600
add esp, 4
push ebx
call fcn.00401f00
add esp, 4
mov ecx, dword [case.0x421049.13]
mov esi, dword [esp + 0x68]
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44438c]
jmp 0x421339
mov edi, esi
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0x83e4181b
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x1b
ja 0x4212bf
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x20]
mov esi, ecx
and esi, 0x48c316
xor ecx, 0x8048c316
lea esi, [ecx + esi*2]
lea ecx, [esi + edx]
and esi, edx
add esi, esi
sub ecx, esi
add cl, 0x66
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x1c
jb case.default.0x4212d4
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.00401e50
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444394]
mov edx, dword [esp + 0x10]
jmp 0x421309
movzx ecx, byte [eax]
test cl, cl
je 0x4212fd
inc eax
mov edx, dword [esp + 0x10]
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4212f0
jmp 0x421301
mov edx, dword [esp + 0x10]
mov word [edx], 0x203a
add edx, 2
mov esi, edi
movzx eax, byte [esp + 0x80]
test al, al
je 0x42132b
lea ecx, [esp + 0x81]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421320
mov byte [edx], 0xa
inc edx
mov dword [esp + 0x10], edx
mov al, 1
mov dword [esp + 0x5c], eax
push ebx
call fcn.00402170
add esp, 4
add esi, 4
xor eax, eax
cmp esi, dword [esp + 0x60]
setne al
lea ebx, [esp + 0x80]
jmp dword [eax*4 + 0x444334]
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x5c]
mov eax, ebx
and al, 1
mov edx, dword [case.0x4212d4.8]
nop
nop
nop
jmp edx
movzx eax, al
mov edi, dword [esp + 0x78]
jmp dword [eax*4 + 0x4443bc]
jmp dword [0x4443c4]
and bl, 1
jmp dword [0x4443cc]
mov eax, dword [case.0x420f41.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ebx, ebx
jmp dword [0x4443cc]
mov ebx, dword [esp + 0x10]
mov byte [ebx], 0
sub ebx, edi
mov dword [esp + 0x80], 0x3f3a3d4d
mov dword [esp + 0x84], 0x2b372621
mov dword [esp + 0x88], 0x2c20263d
mov dword [esp + 0x8c], 0x32224e63
mov dword [esp + 0x90], 0x4769283d
mov dword [esp + 0x94], 0xd5cb2e2b
mov dword [esp + 0x98], 0xdbde97db
mov word [esp + 0x9c], 0x61dc
mov dword [esp + 0x9e], 0
mov dword [esp + 0xa2], 0
mov dword [esp + 0xa6], 0
mov dword [esp + 0xaa], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x2d
ja 0x421493
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
movzx esi, byte [esp + eax + 0x80]
lea eax, [edx - 0x5414396]
add edx, 0x6a
and edx, esi
or eax, esi
sub eax, edx
mov edx, eax
or edx, 0x19
and eax, 0x19
add eax, edx
inc al
mov edx, dword [esp + 0x20]
mov byte [esp + edx + 0x80], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0x2e
jb 0x421450
lea eax, [esp + 0x80]
push ebx
push edi
push eax
call fcn.00409010
mov ebx, eax
jmp dword [0x4443c4]
push edi
call fcn.00408600
add esp, 4
and bl, 1
jmp dword [0x4443cc]
mov eax, dword [esp + 0x4c]
test eax, eax
je case.0x4212d4.14
cmp eax, dword [esp + 0x50]
je case.0x4212d4.14
push eax
call fcn.00408600
add esp, 4
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x42151a
cmp eax, dword [esp + 0x50]
je 0x42151a
push eax
call fcn.00408600
add esp, 4
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
jmp dword [0x4443d8]
lea ecx, [esp + 0x6c]
call fcn.00436390
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
mov dword [esi + 0x58], ebx
mov dword [edi], 0x7b2a79ca
mov dword [edi + 4], 0x7f257d3d
mov dword [edi + 8], 0x73257125
mov dword [edi + 0xc], 0x77267526
mov dword [edi + 0x10], 0x4be449dd
mov dword [edi + 0x14], 0x4f0f4d15
mov dword [edi + 0x18], 0x4318410b
mov dword [edi + 0x1c], 0x471a4519
mov dword [edi + 0x20], 0x5bf45901
mov dword [edi + 0x24], 0x5f0d5d0f
mov dword [edi + 0x28], 0x53045118
mov dword [edi + 0x2c], 0x571755fb
mov dword [edi + 0x30], 0xabefa904
mov dword [edi + 0x34], 0xaffaad06
mov dword [edi + 0x38], 0xa31ca10d
mov dword [edi + 0x3c], 0xa703a514
mov dword [edi + 0x40], 0xbbedb90a
mov dword [edi + 0x44], 0xbf1bbd0e
mov dword [edi + 0x48], 0xb30fb11d
mov word [edi + 0x4c], 0xb5b2
mov dword [edi + 0x51], 0
mov dword [edi + 0x4e], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0x54
ja 0x42176c
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x20]
movzx ebx, byte [edi + eax]
lea eax, [ecx + ebx]
add ecx, 0x4f
and ecx, ebx
add ecx, ecx
sub eax, ecx
add eax, 0xb39bf4f
mov ecx, eax
xor ecx, 0xd6
and eax, 0x56
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 0x20]
mov byte [edi + ecx], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0x55
jb 0x421730
push 0
push 0
push edx
mov ebx, dword [esi + 0x10]
push ebx
push edi
call fcn.0043b490
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x4443f4]
push dword [esi + 0x18]
push dword [esi + 0x48]
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebx]
call fcn.0043b8e0
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4443fc]
mov eax, dword [esi + 0x18]
mov ecx, dword [eax]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x4217c3
mov eax, 0xffffffff
push eax
call fcn.00435d80
add esp, 4
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
mov ebx, dword [esi + 8]
mov dword [ebx], 0xab16a569
mov dword [ebx + 4], 0xaf1ca91f
mov dword [ebx + 8], 0xb300ad09
mov dword [ebx + 0xc], 0xb760b11e
mov dword [ebx + 0x10], 0xbb00b511
mov dword [ebx + 0x14], 0xbfb8b912
mov dword [ebx + 0x1f], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x18], 0
mov dword [esi + 0x20], 0
mov ecx, dword [esi + 0x20]
cmp ecx, 0x22
ja 0x421869
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
mov ebx, dword [esi + 8]
movzx ebx, byte [ebx + ecx]
lea ecx, [edx + ebx]
add ecx, 0xc3c1d9c5
add edx, 0xc3c1d9c5
and edx, ebx
mov ebx, dword [esi + 8]
add edx, edx
sub ecx, edx
add cl, 0x9d
mov edx, dword [esi + 0x20]
mov byte [ebx + edx], cl
inc dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
cmp ecx, 0x23
jb 0x421830
push dword [esi + 0x18]
push eax
push 0
push ebx
mov ebx, dword [esi + 0x10]
push dword [ebx]
call fcn.0043bf90
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x444404]
mov ebx, dword [esi + 0x14]
mov eax, dword [ebx]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44440c]
push eax
call fcn.00408600
add esp, 4
mov dword [ebx], 0
mov ebx, dword [esi + 0x10]
mov eax, dword [ebx]
mov dword [esi + 0x78], eax
mov word [esi + 0x38], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x20], 0xbcbdbebf
mov dword [esi + 0xc], 0
mov eax, dword [esi + 0xc]
cmp eax, 0x19
ja 0x421929
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0xc]
movzx eax, byte [esi + eax + 0x20]
lea edx, [ecx + 0x68]
and edx, eax
add ecx, eax
add edx, edx
sub ecx, edx
add cl, 0x90
mov eax, dword [esi + 0xc]
mov byte [esi + eax + 0x20], cl
mov eax, dword [esi + 0xc]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
cmp eax, 0x1a
jb 0x4218f0
mov ecx, dword [0x44a04c]
test ecx, ecx
mov ebx, dword [esi + 0x58]
je 0x421990
mov eax, dword [esi + 0x20]
mov dword [esi + 0x74], eax
xor eax, eax
mov edx, dword [0x44a050]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + eax*8], 0x5c3924fc
je 0x421986
inc eax
cmp ecx, eax
jne 0x421950
jmp 0x421990
mov eax, 4
xor ecx, ecx
cmp eax, 4
setb cl
mov ebx, dword [esi + 0x58]
jmp dword [ecx*4 + 0x444454]
xor ecx, ecx
cmp eax, 4
sete cl
jmp dword [ecx*4 + 0x44445c]
mov eax, dword [edx + eax*8 + 4]
cmp eax, dword [esi + 0x74]
jne case.default.0x42199b
nop
xor eax, eax
mov ecx, dword [esi + 0x14]
cmp dword [ecx], 0
setne al
jmp dword [eax*4 + 0x444414]
push dword [esi + 0x4c]
call fcn.0043a990
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x44442c]
mov eax, dword [case.0x421880.15]
nop
nop
nop
nop
jmp eax
xor eax, eax
mov ecx, dword [esi + 0x4c]
cmp dword [ecx], 1
sete al
jmp dword [eax*4 + 0x444444]
xor eax, eax
mov ecx, 1
jmp dword [ecx*4 + 0x44444c]
push dword [esi + 0x78]
push 1
push dword [0x44a054]
push eax
call fcn.00437ca0
add esp, 0x10
xor eax, eax
mov ecx, dword [esi + 0x14]
cmp dword [ecx], 0
setne al
jmp dword [eax*4 + 0x444414]
mov ecx, dword [case.0x421a01.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, 2
jmp ecx
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x444454]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444464]
mov edx, 0x20119
xor eax, eax
jmp dword [0x444474]
mov eax, 2
xor ecx, ecx
jmp dword [ecx*4 + 0x44444c]
xor eax, eax
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x444454]
jmp dword [eax*4 + 0x4443ec]
xor eax, eax
mov ecx, dword [esi + 0x14]
cmp dword [ecx], 0
sete al
jmp dword [eax*4 + 0x44447c]
mov eax, dword [esi + 0x44]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov edi, dword [esi + 0x1c]
mov dword [edi], 0x3391319c
mov dword [edi + 4], 0x37a835ab
mov dword [edi + 8], 0x2bb3298e
mov dword [edi + 0xc], 0x2f822d8b
mov dword [edi + 0x10], 0x23bd2183
mov dword [edi + 0x14], 0x278025ba
mov dword [edi + 0x18], 0x1bbd1981
mov dword [edi + 0x1c], 0x1f881d42
mov dword [edi + 0x20], 0x13b411b4
lea eax, [edi + 0x24]
mov dword [esi + 8], eax
mov word [edi + 0x24], 0x1514
mov dword [edi + 0x26], 0
mov dword [edi + 0x2a], 0
mov dword [edi + 0x2e], 0
mov dword [edi + 0x32], 0
mov dword [edi + 0x36], 0
mov dword [edi + 0x3a], 0
mov byte [edi + 0x3e], 0
mov dword [esi + 0x20], 0
mov ecx, dword [esi + 0x20]
cmp ecx, 0x3e
ja 0x421b83
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x20]
mov edi, dword [esi + 0x1c]
movzx edi, byte [edi + edx]
lea edx, [ecx + edi]
add edx, 0x23579308
add ecx, 0x23579308
and ecx, edi
add ecx, ecx
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov edi, dword [esi + 0x1c]
add cl, 0xc8
mov edx, dword [esi + 0x20]
mov byte [edi + edx], cl
inc dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
cmp ecx, 0x3f
jb 0x421b40
mov ecx, 9
mov edx, dword [esi + 0x64]
mov eax, edi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [edx + 0x24]
mov ecx, 1
mov eax, dword [esi + 8]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x14]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x421bb0
cmp eax, 0xffffffd9
jge 0x421bce
mov eax, 0xffffffff
jmp 0x421bd1
xor eax, eax
jmp 0x422bfd
add eax, 0x26
push eax
call fcn.00435d80
add esp, 4
mov ecx, dword [esi + 0x68]
mov dword [ecx], eax
movzx ecx, word [edi]
test cx, cx
je 0x421c01
lea edx, [edi + 2]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421bf0
mov word [eax], 0
mov edx, dword [esi + 0x64]
movzx ecx, word [edx]
test cx, cx
je 0x421c31
add edx, 2
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 0x421c20
mov dword [esi + 0x58], ebx
mov word [eax], 0
jmp dword [0x444484]
push edi
call fcn.00408600
add esp, 4
push 0x60
push 3
push 0x120089
mov ebx, dword [esi + 0x88]
push ebx
mov eax, dword [esi + 0x68]
push dword [eax]
call fcn.0043abe0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44448c]
mov edi, dword [esi + 0x5c]
jmp dword [0x444498]
push 0
push edi
push dword [ebx]
call fcn.0043afb0
add esp, 0xc
nop
nop
nop
nop
nop
nop
nop
nop
nop
push 0
push edi
push dword [ebx]
call fcn.0043afb0
add esp, 0xc
jmp dword [0x4444a0]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4444a4]
mov ebx, dword [edi]
lea eax, [ebx + 1]
push eax
call fcn.00435d80
add esp, 4
mov edi, eax
mov eax, dword [esi + 0xa8]
mov dword [eax], edi
push 0
push ebx
mov ebx, dword [esi + 0x88]
push edi
push dword [ebx]
call fcn.0043b0c0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4444ac]
mov eax, dword [esi + 0x5c]
mov ebx, dword [eax]
mov byte [edi + ebx], 0
push 0x20
call fcn.00435d80
add esp, 4
mov ecx, eax
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov eax, dword [esi + 0xa0]
mov dword [eax], ecx
mov dword [esi + 8], ecx
push ebx
push edi
call fcn.004241d0
movzx eax, al
jmp dword [eax*4 + 0x4444b4]
mov edi, dword [esi + 0x7c]
mov dword [edi], 0xbfaea45b
mov dword [edi + 4], 0xb4beaebb
mov dword [edi + 8], 0xbfb3477f
mov dword [edi + 0xc], 0x4a79b2a0
mov dword [edi + 0x10], 0xb0bbbeaa
mov dword [edi + 0x14], 0xc2bd5e73
mov dword [edi + 0x18], 0xd7ced6cf
mov word [edi + 0x1c], 0x59d7
mov dword [edi + 0x1e], 0
mov dword [edi + 0x22], 0
mov dword [edi + 0x26], 0
mov dword [edi + 0x2a], 0
mov byte [edi + 0x2e], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0x2e
ja 0x421dd8
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x29]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add al, 0xa
mov ecx, dword [esi + 0x20]
mov byte [edi + ecx], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0x2f
jb 0x421db0
mov ecx, dword [esi + 8]
push edi
call fcn.00424400
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4444bc]
add eax, 8
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x4444c4]
jmp dword [0x4444d8]
mov eax, dword [esi + 0xa0]
mov edi, dword [eax]
mov eax, dword [case.0x421de8.10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test edi, edi
sete al
mov ebx, dword [esi + 0x88]
jmp dword [eax*4 + 0x4444ec]
mov ecx, edi
call fcn.00424580
push edi
call fcn.00408600
add esp, 4
mov eax, dword [case.0x421781.46]
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0xa8]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444504]
push eax
call fcn.00408600
add esp, 4
mov eax, dword [case.0x421781.44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [ebx]
mov word [esi + 0x38], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x20], 0xbcbdbebf
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 0xc]
cmp ecx, 0x19
ja 0x421f19
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0xc]
movzx edx, byte [esi + edx + 0x20]
lea edi, [ecx + 0x68]
and edi, edx
add ecx, edx
add edi, edi
sub ecx, edi
add cl, 0x90
mov edx, dword [esi + 0xc]
mov byte [esi + edx + 0x20], cl
mov ecx, dword [esi + 0xc]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
cmp ecx, 0x1a
jb 0x421ee0
mov ecx, dword [0x44a04c]
test ecx, ecx
je case.0x421880.34
mov edx, dword [esi + 0x20]
xor edi, edi
mov ebx, dword [0x44a050]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x5c3924fc
je 0x4221b7
inc edi
cmp ecx, edi
jne 0x421f40
jmp case.0x421880.34
mov eax, 0xffffffff
mov edx, dword [esi + 0x1c]
lea ecx, [eax + eax]
not ecx
add ecx, eax
mov eax, dword [esi + 0x10]
mov dword [eax + edx*8 + 4], ecx
mov ecx, dword [esi + 0x14]
add ecx, 8
mov eax, dword [esi + 0x44]
mov dword [eax + 4], ecx
mov ecx, dword [esi + 0x48]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x4444c4]
mov eax, dword [ecx]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x44]
mov ebx, dword [eax]
mov edx, dword [eax + 4]
mov edi, edx
sub edi, ebx
sar edi, 3
cmp edx, dword [eax + 8]
mov dword [esi + 0x1c], edi
mov dword [esi + 0x48], ecx
jne 0x422053
mov dword [esi + 0x14], edx
lea eax, [edi + 1]
mov ecx, edi
shr edi, 1
add edi, ecx
cmp edi, eax
ja 0x421fc4
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.004085f0
add esp, 4
test ebx, ebx
je 0x422032
mov edx, dword [esi + 0x14]
cmp ebx, edx
mov dword [esi + 0x18], edi
mov edi, eax
je 0x422024
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebx + eax]
mov dword [edi + eax], ecx
mov ecx, dword [ebx + eax + 4]
mov dword [edi + eax + 4], ecx
mov dword [ebx + eax], 0
lea ecx, [ebx + eax]
add ecx, 8
add eax, 8
cmp ecx, edx
jne 0x422000
mov edx, ebx
push edx
call fcn.00408600
add esp, 4
mov eax, edi
mov edi, dword [esi + 0x18]
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 0x44]
mov dword [ecx], eax
mov edx, dword [esi + 0x1c]
lea ebx, [eax + edx*8]
mov dword [ecx + 4], ebx
mov eax, dword [esi + 0x10]
lea eax, [eax + edi*8]
mov edi, edx
mov edx, ebx
mov dword [ecx + 8], eax
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x14], edx
mov dword [ebx + edi*8], 0
mov dword [esi + 0x10], ebx
mov dword [ebx + edi*8 + 4], 0
mov ecx, 0xffffffff
mov ebx, 0xfffffffe
xor edi, edi
mov edx, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edi
add ebx, 2
cmp byte [edx + ecx + 1], 0
lea ecx, [ecx + 1]
lea edi, [edi + 2]
jne 0x422080
mov dword [esi + 0x4c], eax
and ebx, 2
mov eax, ecx
xor eax, 1
mov dword [esi + 0x5c], eax
lea edi, [ebx + eax]
push edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x64], ecx
call fcn.00435d80
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x1c]
mov dword [eax + ecx*8], edx
shr edi, 2
mov eax, dword [esi + 8]
mov ecx, edi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0x18]
mov edi, eax
and edi, 0xfffffffc
add edx, edi
add edi, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x74], ecx
shr ecx, 1
mov dword [esi + 0x78], edi
mov eax, edi
mov dword [esi + 0x7c], edx
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0x18]
test byte [esi + 0x64], 1
jne 0x422119
mov eax, edi
and eax, 2
mov ecx, dword [esi + 0x78]
movzx eax, byte [ecx + eax]
mov edx, dword [esi + 0x74]
xor edx, 1
mov ecx, edi
or ecx, 2
and ecx, edx
mov edx, dword [esi + 0x7c]
mov byte [edx + ecx], al
dec edi
mov edx, dword [esi + 0x4c]
je 0x421f57
mov ecx, edi
mov edi, dword [esi + 0x5c]
lea eax, [edi - 2]
add eax, ebx
jne 0x422142
mov eax, 0xffffffff
mov edx, dword [esi + 0x1c]
test cl, 1
je 0x421f5f
jmp 0x42219c
mov ebx, ecx
and edx, 2
lea ecx, [edi + edx]
dec ecx
and ecx, 0xfffffffe
mov eax, 0xffffffff
mov edi, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
shr edx, 8
xor al, byte [edi]
movzx eax, al
xor edx, dword [eax*4 + 0x43e6b0]
mov eax, edx
shr eax, 8
xor dl, byte [edi + 1]
add edi, 2
movzx edx, dl
xor eax, dword [edx*4 + 0x43e6b0]
add ecx, 0xfffffffe
jne 0x422160
mov dword [esi + 8], edi
mov edx, dword [esi + 0x1c]
mov ecx, ebx
test cl, 1
je 0x421f5f
mov ecx, eax
shr ecx, 8
mov edi, dword [esi + 8]
xor al, byte [edi]
movzx eax, al
xor ecx, dword [eax*4 + 0x43e6b0]
mov eax, ecx
jmp 0x421f5f
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x422200
mov eax, dword [esi + 0x68]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44451c]
push eax
call fcn.00408600
add esp, 4
mov eax, dword [esi + 0x44]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x444524]
xor eax, eax
test edi, edi
jne 0x422ba7
jmp 0x422bfd
push eax
push 1
push dword [0x44a054]
push ecx
call fcn.00437ca0
add esp, 0x10
mov eax, dword [esi + 0x68]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44451c]
mov eax, dword [esi + 0x44]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x444524]
sub ebx, edi
sar ebx, 3
imul eax, ebx, 0x421
push eax
call fcn.00435d80
add esp, 4
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, dword [esi + 0x50]
mov dword [ecx], eax
mov eax, dword [esi + 0x54]
mov byte [eax], 0
mov ebx, dword [esi + 0xbc]
mov dword [ebx], 0xebc895ed
mov dword [ebx + 4], 0xef4de95b
mov dword [ebx + 8], 0xe350ed49
mov dword [ebx + 0xc], 0xe750e1a5
mov dword [ebx + 0x10], 0xfba0e556
mov dword [ebx + 0x14], 0xff4cf95d
mov dword [ebx + 0x18], 0xf387fd59
mov dword [ebx + 0x1c], 0xf7a5f15e
mov dword [ebx + 0x20], 0xcb4ff542
mov dword [ebx + 0x24], 0xcf7bc96d
mov dword [ebx + 0x28], 0xc370cd62
mov dword [ebx + 0x2c], 0xc765c173
mov dword [ebx + 0x30], 0xdb78c561
mov dword [ebx + 0x34], 0xdf52d9a8
mov dword [ebx + 0x38], 0xd366dd7a
lea eax, [ebx + 0x3c]
mov word [ebx + 0x3c], 0xd1d2
mov dword [ebx + 0x42], 0
mov dword [ebx + 0x3e], 0
mov dword [esi + 0x20], 0
mov ecx, dword [esi + 0x20]
cmp ecx, 0x45
ja 0x422338
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x20]
movzx edx, byte [ebx + edx]
mov edi, ecx
and edi, 0x7f5bc3d
xor ecx, 0x7f5bc3d
lea edi, [ecx + edi*2]
lea ecx, [edi + edx]
and edi, edx
add edi, edi
sub ecx, edi
add cl, 0x55
mov edx, dword [esi + 0x20]
mov byte [ebx + edx], cl
inc dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
cmp ecx, 0x46
jb 0x422300
mov ecx, 0xf
mov edx, dword [esi + 0xb0]
mov edi, edx
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov edi, edx
add edi, 0x3c
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0xac]
push edi
push 0
push 0
push 0x1e
push edx
push 0
call dword [0x449040]
mov ebx, dword [edi]
test ebx, ebx
jns 0x42237d
mov eax, 0xffffffff
jmp 0x422380
lea eax, [ebx + ebx]
push eax
call fcn.00435d80
add esp, 4
mov edi, eax
mov eax, dword [esi + 0xb4]
mov dword [eax], edi
push dword [esi + 0xac]
push ebx
push edi
push 0x1e
push dword [esi + 0xb0]
push 0
call dword [0x449040]
push 0x60
push 3
push 0x120089
push dword [esi + 0x70]
push edi
call fcn.0043abe0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44452c]
push 0
mov edi, dword [esi + 0xa4]
push edi
mov ebx, dword [esi + 0x70]
push dword [ebx]
call fcn.0043afb0
add esp, 0xc
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444534]
jmp dword [0x4445e8]
mov edi, dword [edi]
lea eax, [edi + 1]
push eax
call fcn.00435d80
add esp, 4
mov ecx, ebx
mov ebx, eax
mov eax, dword [esi + 0x84]
mov dword [eax], ebx
push 0
push edi
push ebx
push dword [ecx]
call fcn.0043b0c0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44453c]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4445dc]
push ebx
call fcn.00408600
add esp, 4
jmp dword [0x4445e8]
mov eax, dword [esi + 0xa4]
mov eax, dword [eax]
mov dword [esi + 8], eax
mov byte [ebx + eax], 0
push 0x20
call fcn.00435d80
add esp, 4
mov edi, eax
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov eax, dword [esi + 0x94]
mov dword [eax], edi
mov ecx, edi
push dword [esi + 8]
push ebx
call fcn.004241d0
movzx eax, al
jmp dword [eax*4 + 0x444544]
mov ebx, dword [esi + 0xb8]
mov dword [ebx], 0x37c03ed3
mov dword [ebx + 4], 0xba48c833
mov dword [ebx + 8], 0x47b3af87
mov dword [ebx + 0xc], 0xa08dbc4a
mov dword [ebx + 0x10], 0x4ebbb040
mov dword [ebx + 0x14], 0x5555968b
mov dword [ebx + 0x18], 0x5fada856
mov dword [ebx + 0x1c], 0xa7a1a08f
mov word [ebx + 0x20], 0xcda1
mov dword [ebx + 0x22], 0
mov dword [ebx + 0x26], 0
mov dword [ebx + 0x2a], 0
mov dword [ebx + 0x2e], 0
mov byte [ebx + 0x32], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0x32
ja 0x422551
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x20]
movzx edx, byte [ebx + eax]
lea eax, [ecx + edx]
add eax, 0x27c16e3a
add ecx, 0x27c16e3a
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x6a
mov ecx, dword [esi + 0x20]
mov byte [ebx + ecx], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0x33
jb 0x422520
mov ecx, edi
push ebx
call fcn.00424400
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44454c]
add eax, 8
mov edx, dword [esi + 0x98]
jmp 0x42257d
mov edx, dword [esi + 0x98]
mov eax, dword [edx]
add eax, 4
mov eax, dword [eax]
mov dword [edx], eax
mov ecx, dword [case.0x422560.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444564]
mov edi, dword [eax]
mov dword [esi + 0x10], 0
cmp dword [eax + 0x18], 3
jne case.default.0x4225bc
mov ecx, dword [eax + 0x10]
mov dword [esi + 0x10], ecx
xor ecx, ecx
test edi, edi
setne cl
jmp dword [ecx*4 + 0x44456c]
xor ecx, ecx
cmp dword [esi + 0x10], 0
setne cl
jmp dword [ecx*4 + 0x444574]
mov eax, dword [esi + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x42261f
mov ebx, dword [esi + 0x10]
sub ecx, ebx
shr ecx, 1
mov dword [esi + 0x4c], ecx
lea eax, [ecx + 1]
push eax
call fcn.00435d80
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x9c]
mov dword [eax], edx
xor eax, eax
mov dword [esi + 8], 0
movsx eax, byte [ebx + eax*2]
xor ecx, ecx
test eax, eax
setne cl
mov dword [esi + 0x14], edx
jmp dword [ecx*4 + 0x44457c]
mov eax, dword [esi + 8]
mov byte [edx + eax], 0
jmp 0x422631
inc edi
movzx eax, byte [edi]
movsx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x422630
cmp ecx, 0x20
je 0x422630
cmp al, 0x2b
sete cl
cmp al, 0x2d
setne dl
sete al
or al, cl
movzx eax, al
lea ebx, [edi + eax]
mov dword [esi + 0x1c], ebx
or dl, cl
mov byte [esi + 0x48], dl
cmp byte [edi + eax], 0x30
jne 0x42267f
movzx ecx, byte [edi + eax + 1]
and cl, 0xdf
xor edx, edx
cmp cl, 0x58
sete dl
lea eax, [eax + edx*2]
add eax, edi
mov dword [esi + 0x1c], eax
xor edi, edi
xor edx, edx
xor eax, eax
jmp 0x422728
or cl, dl
mov edx, dword [esi + 0x14]
mov ebx, dword [esi + 8]
mov byte [edx + ebx], cl
inc ebx
mov eax, dword [esi + 0x10]
mov dword [esi + 8], ebx
movsx eax, byte [eax + ebx*2]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44457c]
mov ebx, eax
or ebx, 0x20
add ebx, 0xffffff9f
mov edx, eax
add edx, 0xffffffd0
mov ecx, eax
cmp edx, 0xa
jb 0x4226ca
mov cl, 0xf
cmp ebx, 6
jae 0x4226d3
add al, 9
mov ecx, eax
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 8]
movsx edx, byte [eax + edx*2 + 1]
mov ebx, edx
or ebx, 0x20
lea eax, [ebx - 0x61]
add edx, 0xffffffd0
cmp edx, 0xa
jb 0x4226f0
mov dl, 0xff
shl cl, 4
cmp eax, 6
jae 0x422690
add bl, 0xa9
mov edx, ebx
jmp 0x422690
mov dword [esi + 0x18], 0
xor ecx, ecx
mov dword [esi + 8], 0xffffffff
mov ebx, 0xffffffff
mov dword [esi + 0x10], 0x22
mov edx, dword [esi + 0x18]
add edx, dword [esi + 8]
adc ecx, ebx
mov edi, dword [esi + 0x10]
mov eax, ecx
mov ebx, eax
mov dword [esi + 0x10], edi
mov edi, dword [esi + 0x1c]
movsx ecx, byte [edi]
lea eax, [ecx - 0x30]
cmp eax, 0xa
jae 0x422760
mov eax, ecx
xor eax, 0xffffffcf
and ecx, 0xffffffcf
lea eax, [eax + ecx*2]
inc eax
cmp eax, 0xf
jle 0x42277b
jmp 0x4227e9
mov eax, ecx
and eax, 0xffffffdf
add eax, 0xffffffbf
cmp eax, 0x1a
jae 0x4227e9
or cl, 0x20
movsx eax, cl
add eax, 0xffffffa9
cmp eax, 0xf
jg 0x4227e9
mov dword [esi + 0x18], eax
inc edi
mov dword [esi + 0x1c], edi
mov ecx, edx
and ecx, ebx
mov dword [esi + 8], edx
mov edx, 0xffffffff
mov edi, 0x22
mov eax, 0xffffffff
cmp ecx, 0xffffffff
je 0x422728
mov edi, dword [esi + 8]
test ebx, 0xf0000000
je 0x4227bc
mov edi, 0x22
cmp dword [esi + 0x18], 0
jne 0x422728
jmp 0x4226ff
shld ebx, edi, 4
shl edi, 4
mov eax, dword [esi + 0x18]
mov ecx, eax
sar ecx, 0x1f
mov dword [esi + 8], edi
add eax, edi
mov eax, ecx
adc eax, ebx
mov eax, 0xffffffff
mov edi, 0x22
jb 0x422728
jmp 0x42271b
xor edi, edi
mov eax, edx
neg eax
mov ecx, 0
sbb ecx, ebx
cmp byte [esi + 0x48], 0
jne case.default.0x42281e
mov edx, eax
mov ebx, ecx
mov dword [esi + 8], edx
mov dword [esi + 0x18], ebx
mov eax, dword [esi + 0x44]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebx, dword [case.0x4226ad.4]
xor eax, eax
mov dword [esi + 0x48], edx
cmp ecx, edx
setne al
jmp dword [eax*4 + 0x444584]
cmp dword [esi + 0x10], 0x22
setne byte [esi + 0x1c]
mov eax, dword [ecx + 4]
mov edx, eax
shr edx, 0x1c
xor edx, dword [esi + 0x18]
shl eax, 4
or eax, 1
xor eax, dword [esi + 8]
or eax, edx
sete al
and al, byte [esi + 0x1c]
movzx edx, al
mov eax, 1
jmp dword [edx*4 + 0x44458c]
mov edi, dword [ecx]
xor eax, eax
jmp ebx
jmp dword [eax*4 + 0x4445a4]
add ecx, 8
xor eax, eax
cmp ecx, dword [esi + 0x48]
setne al
jmp dword [eax*4 + 0x444584]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x4445ac]
xor eax, eax
mov edi, dword [esi + 0x14]
test edi, edi
sete al
jmp dword [eax*4 + 0x4445bc]
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esi + 0x14]
mov dword [eax + 4], ecx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x422929
mov ecx, dword [esi + 0x8c]
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov ebx, dword [esi + 0x80]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x1d768438
push dword [0x44a058]
call fcn.0043a130
add esp, 8
push ebx
push 1
push 0
push 0
push dword [esi + 0x8c]
push 0
push dword [esi + 0x90]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4445b4]
xor eax, eax
mov edi, dword [esi + 0x14]
test edi, edi
sete al
jmp dword [eax*4 + 0x4445bc]
mov eax, dword [esi + 0x50]
mov ecx, dword [eax]
movzx eax, byte [edi]
test al, al
je 0x42295b
inc edi
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x422950
mov byte [ecx], 0x3a
lea eax, [ecx + 2]
mov edx, dword [esi + 0x50]
mov dword [edx], eax
mov byte [ecx + 1], 0x20
mov edi, dword [esi + 0x80]
mov edx, dword [edi]
test edx, edx
je 0x4229a3
mov ecx, dword [edi + 4]
mov edi, edx
and edi, 3
je 0x4229a7
mov dword [esi + 8], edx
xor ebx, ebx
movzx edx, byte [ecx]
cmp dl, 1
mov byte [eax + ebx], dl
sbb ecx, 0xffffffff
inc ebx
cmp edi, ebx
jne 0x422985
add eax, ebx
mov edi, dword [esi + 8]
mov edx, edi
sub edx, ebx
mov ebx, eax
jmp 0x4229a9
mov ebx, eax
jmp 0x4229ed
mov edi, edx
cmp edi, 4
mov edi, dword [esi + 0x80]
jb 0x4229ed
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 1], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 2], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 3], bl
lea ebx, [eax + 4]
mov eax, ebx
add edx, 0xfffffffc
jne 0x4229b4
lea eax, [ebx + 1]
mov ecx, dword [esi + 0x50]
mov dword [ecx], eax
mov byte [ebx], 0xa
mov eax, dword [esi + 0x54]
mov byte [eax], 1
push 0x4835118f
push dword [0x44a044]
call fcn.0043a130
add esp, 8
push dword [edi + 4]
call eax
mov eax, dword [esi + 0x9c]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4445bc]
jmp dword [0x4445c8]
push edi
call fcn.00408600
add esp, 4
nop
nop
nop
nop
nop
push edi
call fcn.00408600
add esp, 4
jmp dword [0x4445cc]
mov eax, dword [esi + 0x94]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4445d4]
mov ecx, edi
call fcn.00424580
push edi
call fcn.00408600
add esp, 4
mov eax, dword [esi + 0x84]
mov ebx, dword [eax]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4445dc]
mov eax, dword [esi + 0x84]
mov ebx, dword [eax]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4445dc]
jmp dword [0x4445e8]
mov eax, dword [esi + 0x54]
movzx ebx, byte [eax]
jmp dword [ebx*4 + 0x4445fc]
mov eax, dword [esi + 0x60]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444604]
mov eax, dword [esi + 0x50]
mov eax, dword [eax]
mov byte [eax], 0
mov ecx, dword [esi + 0x58]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x60]
mov edx, dword [edx]
mov dword [esi + 8], edx
sub eax, edx
mov ebx, dword [esi + 0x6c]
mov dword [ebx], 0x87808155
mov dword [ebx + 4], 0x837f7079
mov dword [ebx + 8], 0x868e8875
mov dword [ebx + 0xc], 0x6898784b
mov dword [ebx + 0x10], 0x7f519665
mov dword [ebx + 0x14], 0x99639893
mov dword [ebx + 0x18], 0x93945f93
mov word [ebx + 0x1c], 0x3596
mov dword [ebx + 0x1e], 0
mov dword [ebx + 0x22], 0
mov dword [ebx + 0x26], 0
mov byte [ebx + 0x2a], 0
mov dword [esi + 0x20], 0
mov edi, dword [esi + 0x20]
cmp edi, 0x2a
ja 0x422b69
nop
mov ebx, dword [esi + 0x20]
mov edi, dword [esi + 0x20]
add bl, 0x83
mov edx, dword [esi + 0x6c]
xor bl, byte [edx + edi]
add bl, 0x6b
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x6c]
mov byte [edx + edi], bl
mov ebx, dword [esi + 0x6c]
inc dword [esi + 0x20]
mov edi, dword [esi + 0x20]
cmp edi, 0x2b
jb 0x422b40
push eax
push dword [esi + 8]
push ebx
call fcn.00409010
mov ebx, eax
mov eax, dword [esi + 0x54]
mov byte [eax], bl
mov eax, dword [esi + 0x60]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444604]
push eax
call fcn.00408600
add esp, 4
test bl, bl
setne al
mov ecx, dword [esi + 0x44]
mov edi, dword [ecx]
mov ebx, dword [ecx + 4]
test edi, edi
je 0x422bfd
cmp edi, ebx
je 0x422bfd
mov dword [esi + 0x10], eax
mov dword [esi + 8], edi
jmp 0x422bc4
cmp edi, ebx
je 0x422bd8
mov eax, dword [edi]
add edi, 8
test eax, eax
je 0x422bc0
push eax
call fcn.00408600
add esp, 4
jmp 0x422bc0
push dword [esi + 8]
call fcn.00408600
add esp, 4
mov eax, dword [esi + 0x44]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov eax, dword [esi + 0x10]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [ebx + edi*8], 0x5c3924fc
je 0x422c20
inc edi
cmp ecx, edi
jne 0x422c10
jmp case.0x422560.39
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x422560.39
push eax
push 1
push dword [0x44a054]
push ecx
call fcn.00437ca0
add esp, 0x10
mov eax, dword [esi + 0x70]
mov eax, dword [eax]
mov word [esi + 0x38], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x20], 0xbcbdbebf
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 0xc]
cmp ecx, 0x19
ja 0x422cb9
nop
nop
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0xc]
movzx edx, byte [esi + edx + 0x20]
lea edi, [ecx + 0x68]
and edi, edx
add ecx, edx
add edi, edi
sub ecx, edi
add cl, 0x90
mov edx, dword [esi + 0xc]
mov byte [esi + edx + 0x20], cl
mov ecx, dword [esi + 0xc]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
cmp ecx, 0x1a
jb 0x422c80
mov ecx, dword [0x44a04c]
test ecx, ecx
je 0x422cfa
mov edx, dword [esi + 0x20]
xor edi, edi
mov ebx, dword [0x44a050]
nop
nop
cmp dword [ebx + edi*8], 0x5c3924fc
je 0x422ce0
inc edi
cmp ecx, edi
jne 0x422cd0
jmp 0x422cfa
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x422cfa
push eax
push 1
push dword [0x44a054]
push ecx
call fcn.00437ca0
add esp, 0x10
jmp dword [0x4445ec]
mov eax, dword [esi + 0x70]
mov eax, dword [eax]
mov word [esi + 0x38], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x20], 0xbcbdbebf
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 0xc]
cmp ecx, 0x19
ja 0x422d89
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0xc]
movzx edx, byte [esi + edx + 0x20]
lea edi, [ecx + 0x68]
and edi, edx
add ecx, edx
add edi, edi
sub ecx, edi
add cl, 0x90
mov edx, dword [esi + 0xc]
mov byte [esi + edx + 0x20], cl
mov ecx, dword [esi + 0xc]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
cmp ecx, 0x1a
jb 0x422d50
mov ecx, dword [0x44a04c]
test ecx, ecx
je case.0x422560.39
mov edx, dword [esi + 0x20]
xor edi, edi
mov ebx, dword [0x44a050]
jmp 0x422c10
mov eax, dword [esi + 0xb4]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4445f4]
push eax
call fcn.00408600
add esp, 4
mov eax, dword [esi + 0x54]
movzx ebx, byte [eax]
jmp dword [ebx*4 + 0x4445fc]