Function at 0x422737
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x480
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x70], 0xab36ad33
mov dword [esp + 0x74], 0x9737a905
mov dword [esp + 0x78], 0x93c09501
mov dword [esp + 0x7c], 0x9f06913d
mov dword [esp + 0x80], 0x9b9a9d31
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x2f
ja 0x420ebf
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x70]
lea edx, [eax + 0x1a]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add al, 0x64
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x70], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x30
jb case.default.0x420ed2
lea edi, [esp + 0x70]
lea ecx, [esp + 0x48]
push edi
call fcn.00435d30
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44415c]
lea ecx, [esp + 0x48]
push 0x410
call fcn.00436060
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x444164]
mov dword [esp + 0x70], 0xd493dacd
mov dword [esp + 0x74], 0xc6d4b1ae
mov dword [esp + 0x78], 0xdaddd3b1
mov dword [esp + 0x7c], 0xafd0dcbd
mov dword [esp + 0x80], 0xeebb80ac
mov dword [esp + 0x84], 0xe786bc85
mov dword [esp + 0x88], 0xec998498
mov dword [esp + 0x8c], 0xe8b7ee83
mov dword [esp + 0x90], 0x90829c80
mov dword [esp + 0x94], 0xf093b981
mov dword [esp + 0x98], 0x63bc9591
mov dword [esp + 0x9c], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x2f
ja 0x420fb8
nop
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + eax + 0x70]
lea eax, [ecx + edx]
add eax, 0xd67baf8d
add ecx, 0xd67baf8d
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x25
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x70], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x30
jb 0x420f80
lea eax, [esp + 0x64]
lea ecx, [esp + 0x48]
push 0
push 0x2b
push edi
push eax
call fcn.004366b0
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
xor eax, eax
cmp ebx, ecx
sete al
jmp dword [eax*4 + 0x44416c]
mov eax, ecx
not eax
and eax, ebx
mov esi, ecx
mov ecx, ebx
not ecx
and ecx, esi
sub ecx, eax
sar ecx, 2
imul eax, ecx, 0x421
push eax
call fcn.00435ac0
add esp, 4
mov dword [esp + 0x58], 0
xor ecx, ecx
mov dword [esp + 0x5c], esi
cmp ebx, esi
setne cl
mov dword [esp + 0x3c], eax
mov dword [esp + 4], eax
mov dword [esp + 0x40], 0
jmp dword [ecx*4 + 0x444174]
mov esi, dword [ebx]
push 0x400
push 0
push edi
call fcn.004084e0
add esp, 0xc
lea eax, [esp + 0x10]
lea ecx, [esp + 0x48]
push eax
push 0x400
push edi
push esi
call fcn.00436510
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
mov dword [esp + 0x60], ebx
jmp dword [ecx*4 + 0x44417c]
xor eax, eax
cmp dword [esp + 0x10], 0
sete al
jmp dword [eax*4 + 0x444184]
mov eax, 1
jmp dword [eax*4 + 0x44418c]
mov eax, dword [esp + 0x58]
jmp dword [eax*4 + 0x44418c]
mov byte [esp + 0x46f], 0
movzx eax, byte [esp + 0x70]
xor esi, esi
test al, al
je 0x4210c1
mov ecx, edi
cmp al, 0x2e
je 0x4210bf
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x4210b0
jmp 0x4210c1
mov esi, ecx
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x444194]
jmp dword [0x4441a0]
inc esi
mov eax, esi
inc esi
movzx ecx, byte [eax + 1]
xor ebx, ebx
test cl, cl
je 0x4210fe
mov edx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x421104
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x4210f0
jmp dword [0x4441a4]
mov ebx, edx
jmp dword [0x4441a4]
xor ecx, ecx
test ebx, ebx
setne cl
jmp dword [ecx*4 + 0x4441ac]
mov dword [esp + 8], ebx
mov ecx, ebx
sub ecx, esi
mov ebx, ecx
and ebx, 3
mov edi, ecx
or edi, 3
imul edi, ebx
xor ebx, 3
mov edx, ecx
and edx, 0xfffffffc
imul edx, ebx
add edi, edx
shr edi, 2
movzx eax, byte [eax + ecx]
cmp eax, 0x3d
je 0x42114d
cmp eax, 0x2e
jne 0x42114e
dec edi
movzx eax, byte [ecx + esi - 2]
cmp eax, 0x3d
mov dword [esp + 0x34], ecx
mov ebx, dword [esp + 8]
je 0x421165
cmp eax, 0x2e
jne 0x421166
dec edi
mov dword [esp + 0x54], edi
lea eax, [edi + 1]
push eax
call fcn.00435ac0
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x38], esi
cmp ebx, esi
je 0x42127c
xor edx, edx
mov esi, 2
jmp 0x4211b0
mov edx, dword [esp + 0x44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esi + 4]
add esi, 2
cmp esi, ecx
mov esi, eax
jae 0x42127c
mov dword [esp + 8], edx
mov edi, dword [esp + 0x38]
movzx eax, byte [edi + esi - 2]
push eax
call fcn.0040f4d0
add esp, 4
mov ebx, eax
movzx eax, byte [edi + esi - 1]
push eax
call fcn.0040f4d0
add esp, 4
mov bh, al
shr al, 4
and al, 3
shl bl, 2
or bl, al
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov byte [eax + ecx], bl
lea edx, [ecx + 1]
mov ecx, dword [esp + 0x34]
cmp esi, ecx
jae 0x4211a0
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + esi]
push eax
mov edi, edx
call fcn.0040f4d0
mov edx, edi
mov ecx, dword [esp + 0x38]
add esp, 4
cmp al, 0x40
je 0x4211a0
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edi, dword [esp + 8]
lea edx, [edi + 2]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xc]
mov byte [edx + edi + 1], al
lea eax, [esi + 1]
cmp eax, ecx
jae 0x42118f
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.0040f4d0
mov ecx, dword [esp + 0x38]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x44]
je 0x4211a0
shl bl, 6
add al, bl
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov byte [edx + edi + 2], al
add edi, 3
mov edx, edi
jmp 0x4211a0
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0xc]
mov byte [esi + eax], 0
push esi
call fcn.004016d0
add esp, 4
mov ebx, eax
jmp dword [0x4441b4]
push esi
call fcn.00408440
add esp, 4
push ebx
call fcn.00401ff0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
lea edi, [esp + 0x70]
jmp dword [ecx*4 + 0x4441bc]
jmp 0x4213b9
mov word [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x9b38040b
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x1d
ja 0x421340
mov ecx, dword [esp]
mov edx, dword [esp]
add cl, 0x6c
xor cl, byte [esp + edx + 0x10]
add cl, 0xc
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
mov ecx, dword [esp]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp], ecx
mov ecx, dword [esp]
cmp ecx, 0x1e
jb case.default.0x421355
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.00401f40
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4441c4]
mov edx, dword [esp + 4]
jmp 0x421389
movzx ecx, byte [eax]
test cl, cl
je 0x42137d
inc eax
mov edx, dword [esp + 4]
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x421370
jmp 0x421381
mov edx, dword [esp + 4]
mov word [edx], 0x203a
add edx, 2
movzx eax, byte [esp + 0x70]
test al, al
je 0x4213ab
lea ecx, [esp + 0x71]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4213a0
mov byte [edx], 0xa
inc edx
mov dword [esp + 4], edx
mov al, 1
mov dword [esp + 0x40], eax
push ebx
call fcn.00402260
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x421355.7]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ebx, dword [esp + 0x60]
add ebx, 4
xor eax, eax
cmp ebx, dword [esp + 0x5c]
setne al
jmp dword [eax*4 + 0x444174]
jmp dword [0x4441f4]
mov ebx, dword [esp + 0x40]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x4441fc]
mov esi, dword [esp + 0x3c]
jmp dword [0x444204]
xor esi, esi
test ebx, ebx
jne 0x421519
jmp 0x421526
mov edi, dword [esp + 4]
mov byte [edi], 0
mov esi, dword [esp + 0x3c]
sub edi, esi
mov dword [esp + 0x70], 0x1f121d6d
mov dword [esp + 0x74], 0x13070619
mov dword [esp + 0x78], 0xc08161d
mov dword [esp + 0x7c], 0x1a0a6e4b
mov dword [esp + 0x80], 0x6741001d
mov dword [esp + 0x84], 0x5130e03
mov dword [esp + 0x88], 0x33e4703
mov word [esp + 0x8c], 0x893c
mov dword [esp + 0x8e], 0
mov word [esp + 0x92], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x23
ja 0x4214e8
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + eax + 0x70]
lea eax, [ecx + edx]
add eax, 0x74324746
add ecx, 0x74324746
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x16
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x70], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x24
jb 0x4214b0
lea eax, [esp + 0x70]
mov ecx, dword [ebp + 8]
push edi
push esi
push eax
call fcn.00408e80
mov ebx, eax
jmp dword [0x444204]
push esi
call fcn.00408440
add esp, 4
and bl, 1
mov esi, ebx
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
test ebx, ebx
je 0x421526
cmp ebx, ecx
je 0x421526
push ebx
call fcn.00408440
add esp, 4
mov ebx, esi
lea ecx, [esp + 0x48]
call fcn.004361c0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
xor edx, edx
test esi, esi
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x444294]
jmp dword [ecx*4 + 0x44420c]
mov dword [esp + 0x30], 0xb3e0b11c
mov dword [esp + 0x34], 0xb7f1b5f1
mov dword [esp + 0x38], 0x8bd989d1
mov dword [esp + 0x3c], 0x8fdc8dd8
mov dword [esp + 0x40], 0x832e8129
mov dword [esp + 0x44], 0x87c785d9
mov dword [esp + 0x48], 0x9bc299db
mov dword [esp + 0x4c], 0x9fc09dc5
mov dword [esp + 0x50], 0x933e91d5
mov dword [esp + 0x54], 0x97c995c7
mov dword [esp + 0x58], 0xebbee9ae
mov dword [esp + 0x5c], 0xefafedbb
mov dword [esp + 0x60], 0xe3a7e1b2
mov dword [esp + 0x64], 0xe7b0e548
mov dword [esp + 0x68], 0xfb46f959
mov dword [esp + 0x6c], 0xff5bfd4a
mov dword [esp + 0x70], 0xf3a1f15c
mov dword [esp + 0x74], 0xf753f540
mov dword [esp + 0x78], 0xcb77c969
mov word [esp + 0x7c], 0xcdcc
mov word [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [edi], 0
mov dword [esp + 0xb8], 0
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x5f
ja 0x4216a6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
add cl, 0x98
xor cl, byte [esp + edx + 0x30]
add cl, 0xd8
mov edx, dword [esp + 0xb8]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x60
jb 0x421670
lea ecx, [esp + 0x104]
lea ebx, [esp + 0x30]
push 0
push 0
push eax
push ecx
push ebx
call fcn.0043b640
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x444214]
mov eax, dword [case.0x4216c3.5]
nop
jmp eax
lea ecx, [esp + 0x98]
lea eax, [esp + 0x10]
push ecx
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x124]
call fcn.0043bac0
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44422c]
mov ecx, dword [esp + 0x98]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x42171b
mov eax, 0xffffffff
push eax
call fcn.00435ac0
add esp, 4
mov esi, eax
mov dword [esp + 0x30], 0xab56a569
mov dword [esp + 0x34], 0xaf5ca95f
mov dword [esp + 0x38], 0xb340ad49
mov dword [esp + 0x3c], 0xb760b15e
mov dword [esp + 0x40], 0xbb40b551
mov dword [esp + 0x44], 0xbfb8b952
mov dword [edi - 0x32], 0
mov dword [edi - 0x2a], 0
mov word [edi - 0x26], 0
mov dword [edi - 0x2e], 0
mov dword [edi - 0x36], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0x29
ja 0x4217dc
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0x30]
mov edx, eax
and edx, 0xe01f97e5
xor eax, 0xe01f97e5
lea edx, [eax + edx*2]
lea eax, [edx + ecx]
and edx, ecx
add edx, edx
sub eax, edx
add al, 0xbd
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0x2a
jb 0x421790
lea eax, [esp + 0x98]
push eax
push esi
push 0
push ebx
push dword [esp + 0x114]
call fcn.0043c1a0
add esp, 0x14
shr eax, 0x1f
mov dword [esp + 8], esi
jmp dword [eax*4 + 0x444234]
mov dword [esp + 8], 0
jmp dword [0x44423c]
push esi
call fcn.00408440
add esp, 4
nop
nop
nop
nop
mov eax, dword [esp + 0x104]
mov dword [esp + 0xc], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0x32353437
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0x1b
ja 0x4218b4
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
add al, 0xf9
xor al, byte [esp + ecx + 0x30]
add al, 0x31
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0x1c
jb 0x421880
mov ecx, dword [0x44a2fc]
test ecx, ecx
je case.default.0x42192f
mov edx, dword [esp + 0x30]
xor esi, esi
mov eax, dword [0x44a300]
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + esi*8], 0x5c3924fc
je 0x4218f4
inc esi
cmp ecx, esi
jne 0x4218d0
jmp case.default.0x42192f
mov esi, 4
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x444284]
mov eax, dword [eax + esi*8 + 4]
cmp eax, edx
je case.default.0x42192f
push dword [esp + 0xc]
push 1
push dword [0x44a304]
push eax
call fcn.00437f30
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esp + 8], 0
setne al
mov esi, 2
jmp dword [eax*4 + 0x444244]
jmp dword [0x444250]
push ebx
call fcn.0043ab20
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebx
call fcn.0043ab20
add esp, 4
jmp dword [0x444254]
movzx eax, al
jmp dword [eax*4 + 0x44425c]
mov eax, dword [case.0x42192f.11]
nop
nop
jmp eax
xor eax, eax
cmp dword [esp + 0x30], 1
sete al
jmp dword [eax*4 + 0x444274]
xor esi, esi
mov eax, 1
jmp dword [eax*4 + 0x44427c]
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x444284]
xor eax, eax
jmp dword [eax*4 + 0x44427c]
xor esi, esi
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x444284]
xor edx, edx
cmp esi, 4
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x44428c]
xor eax, eax
cmp dword [esp + 8], 0
sete al
jmp dword [eax*4 + 0x44429c]
mov dword [esp + 0x30], 0xc361c19c
mov dword [esp + 0x34], 0xc768c56b
mov dword [esp + 0x38], 0xcb63c96e
mov dword [esp + 0x3c], 0xcf92cd6b
mov dword [esp + 0x40], 0xd37dd173
mov dword [esp + 0x44], 0xd770d57a
mov dword [esp + 0x48], 0xdb7dd971
mov dword [esp + 0x4c], 0xdf68ddb2
mov dword [esp + 0x50], 0x23842184
lea eax, [esp + 0x54]
mov word [esp + 0x54], 0x2524
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0xb8], 0
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x31
ja 0x421ab3
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + 0x60]
mov edi, edx
not edi
or edi, esi
and esi, edx
add esi, edi
sub ecx, esi
add cl, 0xbf
mov edx, dword [esp + 0xb8]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x32
jb 0x421a70
lea edi, [esp + 0x104]
lea edx, [esp + 0x30]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x128]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
mov esi, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x421af0
cmp eax, 0xffffffd9
jge 0x421b0e
mov eax, 0xffffffff
jmp 0x421b11
xor eax, eax
jmp 0x422405
add eax, 0x26
push eax
call fcn.00435ac0
add esp, 4
mov ebx, eax
movzx ecx, word [esi]
test cx, cx
je 0x421b41
lea edx, [esi + 2]
mov eax, ebx
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 0x421b30
mov word [eax], 0
movzx ecx, word [esp + 0x104]
test cx, cx
je 0x421b71
lea edx, [esp + 0x106]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421b60
mov word [eax], 0
jmp dword [0x4442a4]
push esi
call fcn.00408440
add esp, 4
lea eax, [esp + 0x10]
push 0x60
push 3
push 0x120089
push eax
push ebx
call fcn.0043ad70
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4442ac]
xor esi, esi
xor edi, edi
jmp dword [0x44430c]
push ebx
call fcn.00408440
add esp, 4
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x444314]
xor eax, eax
test esi, esi
jne 0x4223d2
jmp 0x422405
mov dword [esp + 0x94], ebx
lea eax, [esp + 0x98]
push 0
push eax
push dword [esp + 0x18]
call fcn.0043b110
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
xor esi, esi
jmp dword [eax*4 + 0x4442b4]
mov esi, dword [esp + 0x98]
lea eax, [esi + 1]
push eax
call fcn.00435ac0
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0x1c]
call fcn.0043b230
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
xor esi, esi
jmp dword [eax*4 + 0x4442bc]
mov esi, dword [esp + 0x98]
mov byte [edi + esi], 0
push 0x20
call fcn.00435ac0
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 [case.0x42192f.34]
nop
jmp eax
mov dword [esp + 0x2c], ecx
push esi
mov dword [esp + 0xb0], edi
push edi
call fcn.004241c0
movzx eax, al
xor edx, edx
xor esi, esi
jmp dword [eax*4 + 0x4442d4]
mov dword [esp + 0x30], 0x17040e6b
mov dword [esp + 0x34], 0xa04741b
mov dword [esp + 0x38], 0x7737f47
mov dword [esp + 0x3c], 0x7c591002
mov dword [esp + 0x40], 0x1e6b1404
mov dword [esp + 0x44], 0x64654453
mov dword [esp + 0x48], 0xf140c17
mov word [esp + 0x4c], 0xbd2f
mov dword [esp + 0x4e], 0
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov byte [esp + 0x5e], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0x2e
ja 0x421d67
nop
nop
nop
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
movzx edx, byte [esp + eax + 0x30]
lea eax, [ecx + edx]
add eax, 0x3178c1c4
add ecx, 0x3178c1c4
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0xa4
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0x2f
jb 0x421d20
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x30]
push eax
call fcn.004243f0
xor ecx, ecx
test eax, eax
setne cl
xor esi, esi
xor edx, edx
jmp dword [ecx*4 + 0x4442dc]
add eax, 8
xor edi, edi
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
xor edx, edx
mov dword [esp + 8], 0
xor esi, esi
jmp dword [eax*4 + 0x4442e4]
mov dword [esp + 0x1c], ecx
mov ebx, dword [ecx]
mov ecx, edx
sub ecx, edi
sar ecx, 3
mov dword [esp + 0x28], edx
mov eax, dword [esp + 8]
cmp edx, eax
mov dword [esp + 0x20], ecx
jne 0x421e61
lea eax, [ecx + 1]
mov esi, ecx
shr esi, 1
add esi, ecx
cmp esi, eax
ja 0x421de0
mov esi, eax
mov eax, esi
and eax, 8
mov ecx, esi
or ecx, 8
imul ecx, eax
xor eax, 8
mov edx, esi
and edx, 0xfffffff7
imul edx, eax
add ecx, edx
push ecx
call fcn.00408430
add esp, 4
mov dword [esp + 0xc], eax
test edi, edi
je 0x421e4f
mov eax, dword [esp + 8]
cmp edi, eax
je 0x421e46
xor eax, eax
mov edx, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [edi + eax]
mov dword [edx + eax], ecx
mov ecx, dword [edi + eax + 4]
mov dword [edx + eax + 4], ecx
mov dword [edi + eax], 0
lea ecx, [edi + eax]
add ecx, 8
add eax, 8
cmp ecx, dword [esp + 8]
jne 0x421e20
mov eax, edi
push eax
call fcn.00408440
add esp, 4
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [edi + ecx*8]
mov dword [esp + 0x28], eax
lea eax, [edi + esi*8]
mov dword [esp + 8], eax
mov dword [edi + ecx*8], 0
mov dword [esp + 0xc], edi
mov dword [edi + ecx*8 + 4], 0
xor esi, esi
nop
nop
nop
nop
nop
nop
cmp byte [ebx + esi], 0
lea esi, [esi + 1]
jne 0x421e80
lea eax, [ebx + esi]
dec eax
add esi, ebx
neg esi
and esi, ebx
mov ecx, ebx
not ecx
and ecx, eax
mov dword [esp + 0x18], ecx
mov eax, ecx
sub eax, esi
mov dword [esp + 0x24], eax
inc eax
push eax
mov edi, eax
mov dword [esp + 0xa8], eax
call fcn.00435ac0
add esp, 4
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
mov dword [ecx + edx*8], eax
mov ecx, edi
shr ecx, 2
mov edx, ebx
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, dword [esp + 0xa4]
mov edx, ecx
and edx, 0xfffffffc
add eax, edx
add edx, ebx
shr ecx, 1
and ecx, 1
mov edi, edx
mov dword [esp + 0xb0], edx
mov dword [esp + 0xa0], eax
mov edi, eax
mov eax, dword [esp + 0xb0]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [esp + 0xa4]
test cl, 1
je 0x421f24
mov edi, ecx
and edi, 2
movzx ecx, byte [edx + edi]
mov eax, dword [esp + 0xa0]
mov byte [eax + edi], cl
xor eax, eax
mov edx, dword [esp + 0x18]
cmp edx, esi
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
je 0x421faf
inc esi
cmp edx, esi
jne 0x421f49
mov eax, 0xffffffff
test byte [esp + 0x24], 1
jne 0x421f96
jmp 0x421fad
mov ecx, dword [esp + 0x24]
and ecx, 0xfffffffe
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
shr edx, 8
xor al, byte [ebx]
movzx eax, al
xor edx, dword [eax*4 + 0x43e6b0]
mov eax, edx
shr eax, 8
xor dl, byte [ebx + 1]
add ebx, 2
movzx edx, dl
xor eax, dword [edx*4 + 0x43e6b0]
add ecx, 0xfffffffe
jne 0x421f60
mov ecx, dword [esp + 0x20]
test byte [esp + 0x24], 1
je 0x421fad
mov ecx, eax
shr ecx, 8
xor al, byte [ebx]
movzx eax, al
xor ecx, dword [eax*4 + 0x43e6b0]
mov eax, ecx
mov ecx, dword [esp + 0x20]
not eax
mov esi, dword [esp + 0xc]
mov dword [esi + ecx*8 + 4], eax
add edi, 8
mov ecx, dword [esp + 0x1c]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
mov edx, edi
mov edi, esi
jmp dword [eax*4 + 0x4442e4]
mov ebx, edx
mov edi, dword [esp + 0xac]
jmp dword [0x4442ec]
mov ecx, dword [esp + 0x2c]
call fcn.00424580
push dword [esp + 0x2c]
call fcn.00408440
add esp, 4
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x444300]
jmp dword [0x444304]
push edi
call fcn.00408440
add esp, 4
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x10]
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0x32353437
mov dword [esp + 0xb8], 0
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x1b
ja 0x4220a6
nop
nop
nop
nop
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
add cl, 0xf9
xor cl, byte [esp + edx + 0x30]
add cl, 0x31
mov edx, dword [esp + 0xb8]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x1c
jb 0x422070
mov ecx, dword [0x44a2fc]
test ecx, ecx
je 0x4220dc
mov edx, dword [esp + 0x30]
xor esi, esi
mov edi, dword [0x44a300]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x5c3924fc
je 0x4220d0
inc esi
cmp ecx, esi
jne 0x4220c0
jmp 0x4220dc
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x422700
mov edi, ebx
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x94]
jmp dword [0x44430c]
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x444314]
mov dword [esp + 0x28], edi
mov eax, edi
mov dword [esp + 0xc], esi
sub eax, esi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.00435ac0
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], 0x632e6145
mov dword [esp + 0x34], 0x6705650b
mov dword [esp + 0x38], 0x6b066909
mov dword [esp + 0x3c], 0x6ffe6d2d
mov dword [esp + 0x40], 0x93d69100
mov dword [esp + 0x44], 0x970295f5
mov dword [esp + 0x48], 0x9bbf99f9
mov dword [esp + 0x4c], 0x9fed9de0
mov dword [esp + 0x50], 0x83e78114
mov dword [esp + 0x54], 0x87eb85e5
mov dword [esp + 0x58], 0x8be689f4
mov dword [esp + 0x5c], 0x8fed8de3
mov dword [esp + 0x60], 0xb3deb1d1
mov dword [esp + 0x64], 0xb720b59a
mov dword [esp + 0x68], 0xbbdcb9dc
lea eax, [esp + 0x6c]
mov word [esp + 0x6c], 0xbdbc
mov dword [esp + 0x6e], 0
mov dword [esp + 0x72], 0
mov dword [esp + 0x75], 0
mov dword [esp + 0xb8], 0
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x48
ja 0x422229
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx esi, byte [esp + ecx + 0x30]
lea ecx, [edx + esi]
add ecx, 0xd3223df0
add edx, 0xd3223df0
and edx, esi
add edx, edx
sub ecx, edx
add cl, 0x70
mov edx, dword [esp + 0xb8]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x49
jb 0x4221e0
lea ebx, [esp + 0xb8]
lea edx, [esp + 0x30]
mov edi, ebx
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xf4]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea esi, [esp + 0x100]
push esi
push 0
push 0
push 0x1e
push ebx
push 0
call dword [0x4492f0]
mov ebx, dword [esp + 0x100]
test ebx, ebx
jns 0x42227b
mov eax, 0xffffffff
jmp 0x42227e
lea eax, [ebx + ebx]
push eax
call fcn.00435ac0
add esp, 4
mov edi, eax
push esi
push ebx
push eax
push 0x1e
lea eax, [esp + 0xc8]
push eax
push 0
call dword [0x4492f0]
lea eax, [esp + 0xa8]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0xc0], edi
push edi
call fcn.0043ad70
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44431c]
xor edx, edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], eax
mov ebx, dword [ebp + 8]
jmp dword [0x4443f4]
push dword [esp + 0xb0]
mov ebx, edx
call fcn.00408440
add esp, 4
mov eax, ebx
and al, 1
movzx ecx, al
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0xc]
mov eax, ebx
mov ebx, dword [ebp + 8]
jmp dword [ecx*4 + 0x4443fc]
mov edx, dword [esp + 8]
mov byte [edx], 0
sub edx, dword [esp + 0x1c]
mov dword [esp + 0x30], 0xf7f4f529
mov dword [esp + 0x34], 0xf30f0cf5
mov dword [esp + 0x38], 0xf6fefcf9
mov dword [esp + 0x3c], 0xfcf4143b
mov dword [esp + 0x40], 0xefc506f9
mov dword [esp + 0x44], 0xdfb0403
mov dword [esp + 0x48], 0x300cf03
mov word [esp + 0x4c], 0x9906
mov dword [esp + 0x4e], 0
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x29
ja 0x4223a5
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
add al, 0xf1
xor al, byte [esp + ecx + 0x30]
add al, 0x69
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x2a
jb 0x422380
mov ecx, ebx
push edx
push dword [esp + 0x20]
lea eax, [esp + 0x38]
push eax
call fcn.00408e80
jmp dword [0x444404]
push dword [esp + 0x1c]
mov ebx, eax
call fcn.00408440
mov eax, ebx
add esp, 4
and al, 1
test esi, esi
je 0x422405
cmp esi, edi
je 0x422405
mov dword [esp + 0x18], eax
mov ebx, esi
jmp 0x4223e4
cmp esi, edi
je 0x4223f8
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x4223e0
push eax
call fcn.00408440
add esp, 4
jmp 0x4223e0
push ebx
call fcn.00408440
add esp, 4
mov eax, dword [esp + 0x18]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 0xb4]
push 0
push eax
push dword [esp + 0xb0]
call fcn.0043b110
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x1c]
jmp dword [eax*4 + 0x444324]
mov esi, dword [esp + 0xb4]
lea eax, [esi + 1]
push eax
call fcn.00435ac0
add esp, 4
mov edi, eax
jmp dword [0x444330]
push 0
push esi
push edi
push dword [esp + 0xb4]
call fcn.0043b230
add esp, 0x10
nop
nop
nop
nop
push 0
push dword [esp + 0xb8]
push edi
push dword [esp + 0xb4]
call fcn.0043b230
add esp, 0x10
jmp dword [0x444338]
not eax
shr eax, 0x1f
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x1c]
jmp dword [eax*4 + 0x44433c]
mov esi, dword [esp + 0xb4]
mov byte [edi + esi], 0
push 0x20
call fcn.00435ac0
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 + 0xf8], eax
mov ecx, eax
push esi
mov dword [esp + 0x100], edi
push edi
call fcn.004241c0
movzx eax, al
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x1c]
jmp dword [eax*4 + 0x444344]
mov dword [esp + 0x30], 0xf7848e93
mov dword [esp + 0x34], 0x82f484f3
mov dword [esp + 0x38], 0x878b9f47
mov dword [esp + 0x3c], 0x9c4188fa
mov dword [esp + 0x40], 0xfef3f484
mov dword [esp + 0x44], 0xf9f9d63b
mov dword [esp + 0x48], 0x8ff9fcf6
mov dword [esp + 0x4c], 0xf7fdfcdf
mov word [esp + 0x50], 0x1e5
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x35
ja 0x4225e7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + eax + 0x30]
lea eax, [ecx + edx]
add eax, 0x2cce6730
add ecx, 0x2cce6730
and ecx, edx
add ecx, ecx
sub eax, ecx
mov ecx, eax
or ecx, 0xaf
and eax, 0xaf
add eax, ecx
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x36
jb 0x4225a0
mov ecx, dword [esp + 0xf8]
lea eax, [esp + 0x30]
push eax
call fcn.004243f0
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x1c]
jmp dword [ecx*4 + 0x44434c]
mov eax, dword [case.0x42260b.36]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov edi, dword [esp + 0xfc]
jmp dword [0x4443e4]
mov esi, dword [esp + 0xf8]
mov ecx, esi
call fcn.00424580
push esi
call fcn.00408440
add esp, 4
jmp dword [0x4443ec]
jmp dword [0x4443ec]
push edi
call fcn.00408440
add esp, 4
mov dword [esp + 8], ebx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0x32353437
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0x1b
ja 0x4226d7
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
add cl, 0xf9
xor cl, byte [esp + edx + 0x30]
add cl, 0x31
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0x1c
jb 0x4226b0
mov ecx, dword [0x44a2fc]
test ecx, ecx
mov ebx, dword [ebp + 8]
je 0x42272d
mov edx, dword [esp + 0x30]
xor esi, esi
mov edi, dword [0x44a300]
cmp dword [edi + esi*8], 0x5c3924fc
je 0x422725
inc esi
cmp ecx, esi
jne 0x4226f0
jmp 0x42272d
push eax
push 1
push dword [0x44a304]
push ecx
call fcn.00437f30
add esp, 0x10
mov edi, ebx
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x94]
jmp dword [0x44430c]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x422755
mov edx, dword [esp + 0x18]
jmp dword [0x4443f4]
mov eax, edx
and al, 1
movzx ecx, al
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0xc]
mov eax, edx
jmp dword [ecx*4 + 0x4443fc]
jmp dword [0x444404]
push eax
push 1
push dword [0x44a304]
push ecx
call fcn.00437f30
add esp, 0x10
mov edx, dword [esp + 0x18]
jmp dword [0x4443f4]
mov ecx, dword [eax + 8]
mov eax, dword [case.0x42260b.5]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0x18], 0
xor eax, eax
test ecx, ecx
setne al
mov ebx, dword [esp + 0x1c]
jmp dword [eax*4 + 0x444364]
mov ecx, dword [ecx + 4]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x444364]
mov edi, dword [ecx]
cmp dword [ecx + 0x18], 3
mov esi, 0
jne case.default.0x4227c8
mov esi, dword [ecx + 0x10]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x44436c]
mov eax, dword [case.0x42260b.12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x444384]
mov dword [esp + 0x24], ecx
mov ecx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne case.default.0x422841
mov ecx, esi
not ecx
and ecx, eax
not eax
and eax, esi
sub ecx, eax
shr ecx, 1
mov dword [esp + 0xac], ecx
lea eax, [ecx + 1]
push eax
call fcn.00435ac0
add esp, 4
movsx edx, byte [esi]
xor ecx, ecx
test edx, edx
setne cl
mov dword [esp + 0xa0], eax
mov dword [esp + 0x94], ebx
jmp dword [ecx*4 + 0x44438c]
mov byte [eax], 0
nop
nop
nop
nop
nop
inc edi
movzx eax, byte [edi - 1]
movsx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x422850
cmp ecx, 0x20
je 0x422850
movzx ecx, al
cmp ecx, 0x2b
je 0x422876
cmp ecx, 0x2d
jne 0x422c22
cmp al, 0x2b
sete byte [esp + 0x2c]
movzx eax, byte [edi]
cmp al, 0x30
jne 0x422894
movzx eax, byte [edi + 1]
and al, 0xdf
xor ecx, ecx
cmp al, 0x58
sete cl
lea edi, [edi + ecx*2]
mov dword [esp + 8], edi
xor ebx, ebx
xor eax, eax
xor esi, esi
nop
nop
mov edx, esi
mov edi, eax
mov eax, dword [esp + 8]
movsx eax, byte [eax]
lea ecx, [eax - 0x30]
cmp ecx, 0xa
jae 0x4228d0
mov ecx, eax
xor ecx, 0xffffffcf
and eax, 0xffffffcf
lea eax, [ecx + eax*2]
inc eax
cmp eax, 0xf
jle 0x4228f2
jmp 0x422abd
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x1a
jae 0x422abd
or al, 0x20
movsx eax, al
add eax, 0xffffffa9
cmp eax, 0xf
jg 0x422abd
mov dword [esp + 0x20], eax
mov dword [esp + 0xa4], ebx
inc dword [esp + 8]
mov ecx, edi
and ecx, edx
mov eax, 0xffffffff
mov ebx, 0x22
mov esi, 0xffffffff
cmp ecx, 0xffffffff
je 0x4228a0
mov ecx, edx
shld edx, edi, 4
shr ecx, 0x1c
shl edi, 4
xor ebx, ebx
mov eax, ecx
neg eax
sbb ebx, ebx
or edx, ebx
or ebx, edi
mov eax, edx
mov edx, dword [esp + 0x20]
mov esi, edx
sar esi, 0x1f
add ebx, edx
adc esi, eax
mov edx, 0xffffffff
mov eax, 0xffffffff
jb 0x422950
mov edx, esi
mov eax, ebx
mov esi, edx
mov ebx, 0x22
mov edx, 0x22
jb 0x422965
mov edx, dword [esp + 0xa4]
test ecx, ecx
jne 0x4228a0
mov ebx, edx
jmp 0x4228a0
mov esi, dword [esp + 8]
movsx edx, byte [esi]
xor ecx, ecx
test edx, edx
setne cl
jmp dword [ecx*4 + 0x44438c]
mov ebx, edx
and ebx, 0xffffffdf
mov ecx, edx
xor ecx, 0x20
add ecx, edx
sub ecx, ebx
lea ebx, [ecx - 0x61]
cmp ebx, 5
ja 0x4229d0
add ecx, 0xffffffa9
shl cl, 4
mov edx, esi
movsx esi, byte [esi + 1]
add edx, 2
mov dword [esp + 8], edx
jmp dword [0x444398]
lea ecx, [edx - 0x30]
cmp ecx, 9
ja 0x422a00
mov ecx, edx
xor ecx, 0xffffffcf
and edx, 0xffffffcf
lea ecx, [ecx + edx*2]
inc ecx
shl cl, 4
mov edx, esi
movsx esi, byte [esi + 1]
add edx, 2
mov dword [esp + 8], edx
jmp dword [0x444398]
mov ecx, 0xffffffff
shl cl, 4
mov edx, esi
movsx esi, byte [esi + 1]
add edx, 2
mov dword [esp + 8], edx
jmp dword [0x444398]
mov edx, esi
and edx, 0xffffffdf
mov ebx, esi
xor ebx, 0x20
add ebx, esi
sub ebx, edx
lea edx, [ebx - 0x61]
cmp edx, 5
ja 0x422a40
add ebx, 0xffffffa9
jmp 0x422a5b
lea edx, [esi - 0x30]
mov ebx, 0xffffffff
cmp edx, 9
ja 0x422a5b
mov edx, esi
xor edx, 0xffffffcf
mov ebx, esi
and ebx, 0xffffffcf
lea ebx, [edx + ebx*2]
inc ebx
or cl, bl
mov byte [eax], cl
inc eax
jmp case.0x42260b.19
or cl, bl
mov byte [eax], cl
inc eax
jmp dword [0x4443a0]
mov edx, esi
and edx, 0xffffffdf
mov ebx, esi
xor ebx, 0x20
add ebx, esi
sub ebx, edx
lea edx, [ebx - 0x61]
cmp edx, 5
ja 0x422aa0
add ebx, 0xffffffa9
or cl, bl
mov byte [eax], cl
inc eax
jmp dword [0x4443a0]
lea edx, [esi - 0x30]
mov ebx, 0xffffffff
cmp edx, 9
ja 0x422a70
mov edx, esi
xor edx, 0xffffffcf
mov ebx, esi
and ebx, 0xffffffcf
lea ebx, [edx + ebx*2]
inc ebx
jmp 0x422a70
xor esi, esi
mov eax, edi
neg eax
mov ecx, 0
mov dword [esp + 8], edx
sbb ecx, edx
cmp byte [esp + 0x2c], 0
jne case.default.0x422aec
mov edi, eax
mov dword [esp + 8], ecx
mov dword [esp + 0x20], edi
xor eax, eax
mov edi, dword [esp + 0xc]
cmp edi, dword [esp + 0x28]
setne al
jmp dword [eax*4 + 0x4443a4]
mov esi, dword [edi]
xor eax, eax
jmp dword [eax*4 + 0x4443b4]
add edi, 8
xor eax, eax
cmp edi, dword [esp + 0x28]
setne al
jmp dword [eax*4 + 0x4443a4]
cmp ebx, 0x22
setne al
mov ecx, dword [edi + 4]
mov edx, ecx
shr edx, 0x1c
xor edx, dword [esp + 8]
shl ecx, 4
or ecx, 1
xor ecx, dword [esp + 0x20]
or ecx, edx
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x4443ac]
mov eax, 1
jmp dword [eax*4 + 0x4443b4]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x4443bc]
mov ebx, dword [esp + 0x94]
mov ecx, dword [esp + 0x24]
jmp dword [0x4443cc]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x34], eax
xor eax, eax
mov edi, dword [esp + 0x94]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + eax], 0
lea eax, [eax + 1]
jne case.default.0x422c0f
lea ecx, [esi + eax]
dec ecx
add eax, esi
neg eax
and eax, esi
mov edx, esi
not edx
and edx, ecx
sub edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
push 0x1d768438
push dword [0x44a308]
call fcn.0043a2f0
add esp, 8
lea ecx, [esp + 0x98]
push ecx
push 1
push 0
push 0
lea ecx, [esp + 0x20]
push ecx
push 0
lea ecx, [esp + 0x48]
push ecx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4443c4]
mov ebx, edi
mov ecx, dword [esp + 0x24]
jmp dword [0x4443cc]
dec edi
mov byte [esp + 0x2c], 1
cmp al, 0x30
je 0x422884
jmp 0x422894
movzx eax, byte [esi]
test al, al
je 0x422c4b
inc esi
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x422c40
mov word [edi], 0x203a
add edi, 2
mov edx, dword [esp + 0x98]
test edx, edx
je 0x422c89
mov eax, dword [esp + 0x9c]
mov ecx, edx
and ecx, 3
je 0x422c8d
xor esi, esi
movzx ebx, byte [eax]
cmp bl, 1
sbb eax, 0xffffffff
mov byte [edi + esi], bl
inc esi
cmp ecx, esi
jne 0x422c6e
mov ecx, edx
sub ecx, esi
add edi, esi
mov ebx, edi
jmp 0x422c8f
mov ebx, edi
jmp 0x422ccd
mov ecx, edx
cmp edx, 4
jb 0x422ccd
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 ebx, [edi + 4]
mov byte [edi + 3], dl
mov edi, ebx
add ecx, 0xfffffffc
jne 0x422c94
mov byte [ebx], 0xa
inc ebx
push 0x4835118f
push dword [0x44a2f4]
call fcn.0043a2f0
add esp, 8
push dword [esp + 0x9c]
call eax
mov al, 1
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x24]
jmp dword [0x4443cc]
push dword [esp + 0xa0]
call fcn.00408440
mov ecx, dword [esp + 0x28]
add esp, 4
mov ecx, dword [ecx + 4]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x444364]