Function at 0x420b27
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x470
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x68], 0x6be66de3
mov dword [esp + 0x6c], 0x67c769f5
mov dword [esp + 0x70], 0x63b065f1
mov dword [esp + 0x74], 0x5fd661fd
mov dword [esp + 0x78], 0x5b5a5dc1
mov dword [esp + 0x7c], 0
mov byte [esp + 0x80], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x18
ja 0x420b0d
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + 0x10e92]
add eax, 0x92
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
add al, 2
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x68], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0x19
jb case.default.0x420b20
lea eax, [esp + 0x68]
lea ecx, [esp + 0x54]
push eax
call fcn.00436080
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x4438c8]
lea ecx, [esp + 0x54]
push 0x410
call fcn.004362f0
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x4438d0]
mov dword [esp + 0x68], 0x25b1005
mov dword [esp + 0x6c], 0x18026d08
mov dword [esp + 0x70], 0xc050b69
mov dword [esp + 0x74], 0x671e1675
mov dword [esp + 0x78], 0x18734a66
mov dword [esp + 0x7c], 0x1f7c467d
mov dword [esp + 0x80], 0x1a617e62
mov dword [esp + 0x84], 0x267f244b
mov dword [esp + 0x88], 0x4648564a
mov dword [esp + 0x8c], 0x2e4b6559
mov dword [esp + 0x90], 0xb3624949
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9b], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x36
ja 0x420c2b
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + 0x44]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xe2117344
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x24
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x68], al
mov eax, dword [esp + 0x20]
mov ecx, eax
xor ecx, 1
and eax, 1
lea eax, [ecx + eax*2]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x37
jb 0x420be0
lea eax, [esp + 0x20]
lea ecx, [esp + 0x54]
push 0
push 0x2b
lea edx, [esp + 0x70]
push edx
push eax
call fcn.004368d0
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
xor eax, eax
cmp esi, ecx
sete al
xor ebx, ebx
jmp dword [eax*4 + 0x4438d8]
mov eax, ecx
sub eax, esi
sar eax, 2
mov edi, 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.00408d00
add esp, 4
mov dword [esp + 0x38], 0
xor ecx, ecx
mov dword [esp + 0x14], edi
cmp esi, edi
setne cl
mov dword [esp + 0x60], eax
mov dword [esp + 0x30], eax
lea edi, [esp + 0x68]
mov ebx, esi
jmp dword [ecx*4 + 0x4438e0]
add ebx, 4
xor eax, eax
cmp ebx, ecx
setne al
jmp dword [eax*4 + 0x4438e0]
mov esi, dword [ebx]
push 0x400
push 0
push edi
call fcn.00408d80
add esp, 0xc
lea eax, [esp + 0x40]
lea ecx, [esp + 0x54]
push eax
push 0x400
push edi
push esi
call fcn.00436760
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
jmp dword [ecx*4 + 0x4438e8]
xor eax, eax
cmp dword [esp + 0x40], 0
sete al
jmp dword [eax*4 + 0x4438f0]
mov eax, 1
mov ecx, dword [esp + 0x14]
jmp dword [eax*4 + 0x4438f8]
xor eax, eax
mov ecx, dword [esp + 0x14]
jmp dword [eax*4 + 0x4438f8]
mov byte [esp + 0x467], 0
movzx eax, byte [esp + 0x68]
xor edx, edx
test al, al
je 0x420d75
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x2e
je 0x420d6f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x420d60
jmp 0x420d71
mov edx, ecx
mov ecx, dword [esp + 0x14]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x443900]
lea esi, [edx + 1]
movzx eax, byte [edx + 1]
mov dword [esp + 0x34], 0
test al, al
je 0x420db7
mov ecx, esi
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x2e
je 0x420daf
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x420da0
jmp 0x420db3
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x14]
xor eax, eax
cmp dword [esp + 0x34], 0
setne al
jmp dword [eax*4 + 0x443908]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x50], edx
mov dword [esp + 4], esi
jmp dword [0x443914]
mov edi, dword [esp + 0x34]
mov ebx, edi
sub ebx, esi
mov eax, ebx
and eax, 3
mov esi, edx
mov edx, ebx
or edx, 3
imul edx, eax
xor eax, 3
mov ecx, ebx
and ecx, 0xfffffffc
imul ecx, eax
add edx, ecx
shr edx, 2
movzx eax, byte [esi + ebx]
cmp eax, 0x3d
je 0x420e0f
cmp eax, 0x2e
jne 0x420e10
dec edx
mov esi, dword [esp + 4]
movzx eax, byte [ebx + esi - 2]
cmp eax, 0x3d
mov dword [esp + 0x18], ebx
je 0x420e27
cmp eax, 0x2e
jne 0x420e28
dec edx
mov dword [esp + 0x3c], edx
lea eax, [edx + 1]
push eax
call fcn.00408d00
add esp, 4
mov dword [esp + 8], eax
cmp edi, esi
je 0x420f41
xor edi, edi
mov esi, 2
jmp 0x420e72
mov edx, dword [esp + 0x2c]
nop
nop
nop
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 0x420f41
mov ebx, dword [esp + 4]
movzx eax, byte [ebx + esi - 2]
push eax
call fcn.0040f690
add esp, 4
mov byte [esp + 0xc], al
movzx eax, byte [ebx + esi - 1]
push eax
call fcn.0040f690
add esp, 4
mov bh, al
movzx ecx, byte [esp + 0xc]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 8]
mov byte [ecx + edi], al
lea edx, [edi + 1]
mov ecx, dword [esp + 0x18]
cmp esi, ecx
jae 0x420e60
mov dword [esp + 0xc], edi
mov eax, dword [esp + 4]
movzx eax, byte [eax + esi]
push eax
mov edi, edx
call fcn.0040f690
mov edx, edi
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp al, 0x40
je 0x420e60
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edi, dword [esp + 0xc]
lea edx, [edi + 2]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 8]
mov byte [edx + edi + 1], al
lea eax, [esi + 1]
cmp eax, ecx
jae 0x420e4d
mov eax, dword [esp + 4]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.0040f690
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x2c]
je 0x420e60
shl bl, 6
add al, bl
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov byte [edx + edi + 2], al
add edi, 3
mov edx, edi
jmp 0x420e60
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 8]
mov byte [ecx + eax], 0
push ecx
call fcn.00401f50
add esp, 4
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 4]
jmp case.0x420dc1.3
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 8]
mov byte [edi + eax], 0
push edi
call fcn.00401f50
add esp, 4
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 4]
jmp dword [0x44391c]
mov edi, dword [esp + 0x34]
mov eax, edi
sub eax, esi
mov ecx, eax
and ecx, 3
mov ebx, eax
or ebx, 3
imul ebx, ecx
mov esi, edx
mov edx, ecx
xor edx, 3
mov ecx, eax
and ecx, 0xfffffffc
imul ecx, edx
add ebx, ecx
mov ecx, ebx
mov ebx, eax
shr ecx, 2
movzx eax, byte [esi + eax]
cmp eax, 0x3d
je 0x420fbe
cmp eax, 0x2e
jne 0x420fbf
dec ecx
mov esi, dword [esp + 4]
movzx eax, byte [ebx + esi - 2]
cmp eax, 0x3d
mov dword [esp + 0x18], ebx
je 0x420fd6
cmp eax, 0x2e
jne 0x420fd7
dec ecx
mov dword [esp + 0x3c], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408d00
add esp, 4
mov dword [esp + 8], eax
cmp edi, esi
je 0x420f60
xor edi, edi
mov esi, 2
jmp 0x421012
mov edx, dword [esp + 0x2c]
lea eax, [esi + 4]
add esi, 2
mov edi, edx
cmp esi, ecx
mov esi, eax
jae 0x420f60
mov ebx, dword [esp + 4]
movzx eax, byte [ebx + esi - 2]
push eax
call fcn.0040f690
add esp, 4
mov byte [esp + 0xc], al
movzx eax, byte [ebx + esi - 1]
push eax
call fcn.0040f690
add esp, 4
mov bh, al
movzx ecx, byte [esp + 0xc]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 8]
mov byte [ecx + edi], al
lea edx, [edi + 1]
mov ecx, dword [esp + 0x18]
cmp esi, ecx
jae 0x421000
mov dword [esp + 0xc], edi
mov eax, dword [esp + 4]
movzx eax, byte [eax + esi]
push eax
mov edi, edx
call fcn.0040f690
mov edx, edi
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp al, 0x40
je 0x421000
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edi, dword [esp + 0xc]
lea edx, [edi + 2]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 8]
mov byte [edx + edi + 1], al
lea eax, [esi + 1]
cmp eax, ecx
jae 0x420ffc
mov eax, dword [esp + 4]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.0040f690
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x2c]
je 0x421000
shl bl, 6
add al, bl
mov edx, dword [esp + 8]
mov edi, dword [esp + 0xc]
mov byte [edx + edi + 2], al
add edi, 3
mov edx, edi
jmp 0x421000
mov ebx, eax
jmp dword [0x443920]
push edi
call fcn.00408d10
add esp, 4
push ebx
call fcn.00402860
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443928]
jmp 0x42120c
mov dword [esp + 0x40], 0x3350a4a3
lea ecx, [esp + 0x44]
mov byte [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xc
ja 0x42117f
nop
nop
nop
nop
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx - 0x59a7058]
add ecx, 0xa8
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x10]
add cl, 0x68
mov edx, dword [esp + 0x1c]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xd
jb 0x421140
lea ecx, [esp + 0x40]
push ecx
push eax
call fcn.004027b0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443930]
mov eax, dword [case.0x421194.4]
mov edx, dword [esp + 0x30]
jmp case.0x421194.2
movzx ecx, byte [eax]
test cl, cl
mov edx, dword [esp + 0x30]
je 0x4211cb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4211c0
mov word [edx], 0x203a
add edx, 2
mov eax, dword [case.0x421194.4]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
movzx eax, byte [esp + 0x68]
test al, al
je 0x4211fb
lea ecx, [esp + 0x69]
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4211f0
mov byte [edx], 0
mov byte [edx], 0xa
inc edx
mov dword [esp + 0x30], edx
mov al, 1
mov dword [esp + 0x38], eax
push ebx
call fcn.00402ad0
add esp, 4
mov ebx, dword [esp + 0x64]
add ebx, 4
xor eax, eax
cmp ebx, dword [esp + 0x14]
setne al
lea edi, [esp + 0x68]
jmp dword [eax*4 + 0x4438e0]
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x38]
and al, 1
mov edx, dword [case.0x420dc1.23]
nop
jmp edx
movzx eax, al
mov edi, dword [esp + 0x60]
jmp dword [eax*4 + 0x443968]
mov eax, dword [esp + 0x38]
jmp dword [0x443970]
mov ebx, dword [esp + 0x30]
mov byte [ebx], 0
sub ebx, edi
mov dword [esp + 0x68], 0xf0201f1
mov dword [esp + 0x6c], 0x317160d
mov dword [esp + 0x70], 0x38343631
mov dword [esp + 0x74], 0x2a3adef3
mov dword [esp + 0x78], 0xd7fd3c21
mov dword [esp + 0x7c], 0x39233e3b
mov dword [esp + 0x80], 0x132ee72b
mov word [esp + 0x84], 0x9d28
mov dword [esp + 0x86], 0
mov dword [esp + 0x8a], 0
mov byte [esp + 0x8e], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x26
ja 0x421320
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edx, byte [esp + edx + 0x68]
lea esi, [eax + edx]
add eax, 0x98
and eax, edx
add eax, eax
sub esi, eax
add esi, 0x1a73698
mov dword [esp + 0x40], esi
mov eax, dword [esp + 0x40]
add al, 0xd8
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x68], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x27
jb 0x4212e0
lea eax, [esp + 0x68]
push ebx
push edi
push eax
call fcn.00409660
jmp dword [0x443970]
push edi
mov esi, eax
call fcn.00408d10
mov eax, esi
add esp, 4
nop
mov ebx, eax
and bl, 1
jmp dword [0x443980]
mov eax, dword [esp + 0x20]
test eax, eax
je case.0x420b20.1
cmp eax, dword [esp + 0x24]
je case.0x420b20.1
push eax
call fcn.00408d10
add esp, 4
lea ecx, [esp + 0x54]
call fcn.00436440
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
xor edx, edx
test eax, eax
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x443a00]
jmp dword [ecx*4 + 0x443988]
mov dword [esp + 0x40], 0xbb0ab90a
mov dword [esp + 0x44], 0xbf75bd7d
mov dword [esp + 0x48], 0xa315a175
mov dword [esp + 0x4c], 0xa716a516
mov dword [esp + 0x50], 0xab14a91d
mov dword [esp + 0x54], 0xaf6fad65
mov dword [esp + 0x58], 0x9358916b
mov dword [esp + 0x5c], 0x975a9559
mov dword [esp + 0x60], 0x9b249951
mov dword [esp + 0x64], 0x9f2d9d2f
mov dword [esp + 0x68], 0x83348158
mov dword [esp + 0x6c], 0x8747853b
mov dword [esp + 0x70], 0x8b4f8934
mov dword [esp + 0x74], 0x8f3a8d36
mov dword [esp + 0x78], 0x73dc712d
mov dword [esp + 0x7c], 0x77d375e4
mov dword [esp + 0x80], 0x7bcd79ca
mov dword [esp + 0x84], 0x7fdb7dee
mov dword [esp + 0x88], 0x63cf61dd
mov word [esp + 0x8c], 0x6562
lea ecx, [esp + 0x8e]
mov dword [ecx + 3], 0
mov dword [ecx], 0
mov dword [esp + 0xa4], 0
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x54
ja 0x42150c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa4]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + 0x399c3ac7]
mov edi, edx
not edi
or edi, esi
and esi, edx
add esi, edi
neg esi
add ecx, esi
add ecx, 0x399c3ac6
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0xdc]
add cl, 0x8f
mov edx, dword [esp + 0xa4]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x55
jb 0x4214b0
lea ecx, [esp + 4]
lea edx, [esp + 0x40]
push 0
push 0
push eax
push ecx
push edx
call fcn.0043afc0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x443990]
mov edi, 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 + 0x24]
call fcn.0043b3d0
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443998]
mov ecx, dword [esp + 0x3c]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x42156f
mov eax, 0xffffffff
push eax
call fcn.00408d00
add esp, 4
mov esi, eax
mov dword [esp + 0x40], 0x338c31e9
mov dword [esp + 0x44], 0x37823587
mov dword [esp + 0x48], 0xbb609a9
mov dword [esp + 0x4c], 0xfde0db0
mov dword [esp + 0x50], 0x3b601a1
mov dword [esp + 0x54], 0x70605bc
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0xa4], 0
mov eax, dword [esp + 0xa4]
cmp eax, 0x1f
ja 0x42163f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0xd8]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x9b2e65d8
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xdc]
mov ecx, eax
xor ecx, 0x17
and eax, 0x17
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0xa4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0xa4]
mov eax, dword [esp + 0xa4]
cmp eax, 0x20
jb 0x4215e0
push ebx
push esi
push 0
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x14]
call fcn.0043ba40
add esp, 0x14
shr eax, 0x1f
mov edi, esi
jmp dword [eax*4 + 0x4439a0]
xor edi, edi
jmp dword [0x4439a8]
push esi
call fcn.00408d10
add esp, 4
mov eax, dword [case.0x421526.2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 4]
mov dword [esp + 0x40], 0xa8a9aeaf
mov dword [esp + 0x44], 0
mov dword [esp + 0xa4], 0
mov ecx, dword [esp + 0xa4]
cmp ecx, 7
ja 0x421703
nop
nop
nop
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa4]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + 0x1a]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0xba259e1a
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0xdc]
add cl, 0x4a
mov edx, dword [esp + 0xa4]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
cmp ecx, 8
jb 0x4216b0
mov ecx, dword [0x449c68]
test ecx, ecx
je 0x421750
mov edx, dword [esp + 0x40]
xor esi, esi
mov ebx, dword [0x449c6c]
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + esi*8], 0x11081610
je 0x421744
inc esi
cmp ecx, esi
jne 0x421720
jmp 0x421750
mov eax, 4
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x4439f0]
mov ecx, dword [ebx + esi*8 + 4]
cmp ecx, edx
jne case.default.0x42175e
nop
nop
nop
nop
xor ecx, ecx
mov ebx, edi
test edi, edi
setne cl
mov eax, 2
jmp dword [ecx*4 + 0x4439c0]
lea eax, [esp + 0x40]
push eax
call fcn.0043a5c0
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x4439c8]
xor eax, eax
cmp dword [esp + 0x40], 1
sete al
jmp dword [eax*4 + 0x4439d0]
xor eax, eax
mov ecx, 1
jmp dword [ecx*4 + 0x4439d8]
push eax
push 1
push dword [0x449c70]
push ecx
call fcn.00437ca0
add esp, 0x10
xor ecx, ecx
mov ebx, edi
test edi, edi
setne cl
mov eax, 2
jmp dword [ecx*4 + 0x4439c0]
mov eax, 2
xor ecx, ecx
jmp dword [ecx*4 + 0x4439d8]
mov ecx, dword [case.0x4217bb.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
jmp ecx
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x4439f0]
xor edx, edx
cmp eax, 4
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x4439f8]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x443a08]
mov dword [esp + 0xc], eax
mov dword [esp + 0x40], 0x433d4122
mov dword [esp + 0x44], 0x5f2a5d33
mov dword [esp + 0x48], 0x5b235920
mov dword [esp + 0x4c], 0x57305523
mov dword [esp + 0x50], 0x5321512b
mov dword [esp + 0x54], 0x6f126d24
mov dword [esp + 0x58], 0x6b116915
mov dword [esp + 0x5c], 0x67ea655c
mov dword [esp + 0x60], 0x631e611a
lea eax, [esp + 0x64]
mov dword [esp + 0x64], 0x7d62
mov byte [esp + 0x68], 0
mov dword [esp + 0xa4], 0
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x28
ja 0x4218f9
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa4]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + edx]
add esi, 0x6cad1cb
add ecx, 0x6cad1cb
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xdc], esi
mov ecx, dword [esp + 0xdc]
add cl, 0x73
mov edx, dword [esp + 0xa4]
mov byte [esp + edx + 0x40], cl
mov ecx, dword [esp + 0xa4]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x29
jb 0x421890
lea edi, [esp + 0xa4]
lea edx, [esp + 0x40]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xc8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x421930
cmp eax, 0xffffffd9
jge 0x42194e
mov eax, 0xffffffff
jmp 0x421951
xor eax, eax
jmp 0x422615
add eax, 0x26
push eax
call fcn.00408d00
add esp, 4
mov esi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x421981
lea edx, [ebx + 2]
mov eax, esi
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 0x421970
mov word [eax], 0
movzx ecx, word [esp + 0xa4]
test cx, cx
je 0x4219b1
lea edx, [esp + 0xa6]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4219a0
mov word [eax], 0
mov eax, dword [esp + 0xc]
jmp dword [eax*4 + 0x443a10]
push ebx
call fcn.00408d10
add esp, 4
lea eax, [esp + 0x10]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0x30], esi
push esi
call fcn.0043a800
add esp, 0x14
not eax
shr eax, 0x1f
xor ebx, ebx
mov dword [esp + 0x28], 0
jmp dword [eax*4 + 0x443a18]
jmp dword [0x443a98]
push dword [esp + 0x20]
call fcn.00408d10
add esp, 4
xor eax, eax
mov edi, dword [esp + 0x28]
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x443aa0]
xor eax, eax
test edi, edi
jne 0x4225e2
jmp 0x422615
lea eax, [esp + 0x3c]
push 0
push eax
push dword [esp + 0x18]
call fcn.0043ab80
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x443a20]
mov esi, dword [esp + 0x3c]
lea eax, [esi + 1]
push eax
call fcn.00408d00
add esp, 4
push 0
push esi
mov dword [esp + 0x38], eax
push eax
push dword [esp + 0x1c]
call fcn.0043ac70
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x443a28]
mov eax, dword [case.0x4217bb.31]
nop
nop
nop
nop
nop
nop
jmp eax
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
jmp dword [0x443a44]
mov byte [edi + esi], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi + esi], 0
push 0x20
call fcn.00408d00
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
jmp dword [0x443a48]
mov dword [esp + 0x98], eax
mov ecx, eax
push esi
push edi
call fcn.00424090
movzx eax, al
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x443a50]
mov dword [esp + 0x40], 0xc7d4cee3
mov dword [esp + 0x44], 0xd2c4d4c3
mov dword [esp + 0x48], 0xb7ab9ff7
mov dword [esp + 0x4c], 0x9cf1a8ba
mov dword [esp + 0x50], 0xbea3a4b4
mov dword [esp + 0x54], 0xa4a584fb
mov dword [esp + 0x58], 0xafa4aca7
mov word [esp + 0x5c], 0xddaf
mov dword [esp + 0x5e], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x21
ja 0x421bb3
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 + 0x40]
lea edx, [eax + 0x75ef5fb8]
add eax, 0xb8
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xdc], edx
mov eax, dword [esp + 0xdc]
add al, 0xf8
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x22
jb 0x421b70
mov ecx, dword [esp + 0x98]
lea eax, [esp + 0x40]
push eax
call fcn.00424280
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
jmp dword [ecx*4 + 0x443a58]
add eax, 8
xor edi, edi
mov edx, dword [eax]
xor eax, eax
test edx, edx
setne al
xor ebx, ebx
mov dword [esp + 0x18], 0
jmp dword [eax*4 + 0x443a60]
mov eax, dword [case.0x4217bb.36]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x443a78]
mov esi, dword [esp + 0x98]
mov ecx, esi
call fcn.00424410
push esi
call fcn.00408d10
add esp, 4
jmp dword [0x443a80]
mov dword [esp + 0x28], edi
jmp dword [0x443a88]
xor eax, eax
mov edi, dword [esp + 0x28]
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x443aa0]
mov dword [esp + 0x2c], ebx
mov eax, ebx
sub eax, edi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.00408d00
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x40], 0x4b08452d
mov dword [esp + 0x44], 0x4fed49db
mov dword [esp + 0x48], 0xb3e04de9
mov dword [esp + 0x4c], 0xb720b1f5
mov dword [esp + 0x50], 0xbbf0b526
mov dword [esp + 0x54], 0xbf2cb91d
mov dword [esp + 0x58], 0xa3d7bd19
mov dword [esp + 0x5c], 0xa715a11e
mov dword [esp + 0x60], 0xab0fa532
mov dword [esp + 0x64], 0xaf3ba90d
mov dword [esp + 0x68], 0x9300ad12
mov dword [esp + 0x6c], 0x97359103
mov dword [esp + 0x70], 0x9b389531
mov dword [esp + 0x74], 0x9f0299c8
mov dword [esp + 0x78], 0x83369d3a
lea eax, [esp + 0x7c]
mov word [esp + 0x7c], 0x8182
mov dword [esp + 0x7e], 0
mov dword [esp + 0x82], 0
mov word [esp + 0x86], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x47
ja 0x421d74
mov edx, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx esi, byte [esp + ecx + 0x40]
lea edi, [edx + 0xf5]
mov ebx, 0x1d23b30a
sub ebx, edx
lea ecx, [edx + esi]
add ecx, 0xe2dc4cf5
and edi, esi
or ebx, esi
add ebx, edx
lea edx, [edi + ebx]
add edx, 0xe2dc4cf6
mov esi, ecx
not esi
and esi, edx
not edx
and edx, ecx
sub edx, esi
mov dword [esp + 0xdc], edx
mov ecx, dword [esp + 0xdc]
add cl, 0x4d
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x48
jb 0x421d10
lea esi, [esp + 0xdc]
lea edx, [esp + 0x40]
mov edi, esi
mov ecx, 0xf
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 [0x448c5c]
mov edi, dword [esp + 0x3c]
test edi, edi
jns 0x421fbd
mov eax, 0xffffffff
jmp 0x421fc0
xor ecx, ecx
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x38]
mov dword [edi + esi*8 + 4], ecx
add ebx, 8
add edx, 4
mov edx, dword [edx]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x443a60]
mov eax, dword [edx]
mov dword [esp + 0xc], eax
mov ecx, ebx
sub ecx, edi
sar ecx, 3
cmp ebx, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edx
je 0x421e18
mov dword [esp + 0x2c], ebx
mov ebx, edi
mov edx, ecx
jmp 0x421e8f
lea eax, [ecx + 1]
mov esi, ecx
shr esi, 1
add esi, ecx
cmp esi, eax
ja 0x421e27
mov esi, eax
lea eax, [esi*8]
push eax
call fcn.00408d00
add esp, 4
mov ebx, eax
test edi, edi
je 0x421e7d
mov edx, dword [esp + 0x18]
cmp edi, edx
je 0x421e74
xor eax, eax
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 0x421e50
mov edx, edi
push edx
call fcn.00408d10
add esp, 4
mov edx, dword [esp + 0x1c]
lea eax, [ebx + edx*8]
mov dword [esp + 0x2c], eax
lea eax, [ebx + esi*8]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0xc]
mov dword [ebx + edx*8], 0
mov dword [esp + 0x38], ebx
mov dword [ebx + edx*8 + 4], 0
xor ebx, ebx
mov eax, 2
xor esi, esi
nop
mov edx, eax
add esi, 2
cmp byte [ecx + ebx], 0
lea ebx, [ebx + 1]
lea eax, [eax + 2]
jne 0x421eb0
mov dword [esp + 0x34], edx
push ebx
call fcn.00408d00
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
mov dword [eax + ecx*8], edi
mov ecx, ebx
shr ecx, 2
mov edx, dword [esp + 0xc]
mov eax, edi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
add eax, edx
mov edi, eax
add edx, dword [esp + 0xc]
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov eax, edx
mov dword [esp + 0x9c], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x421f26
mov eax, ebx
and eax, 2
movzx ecx, byte [edx + eax]
mov edx, dword [esp + 0x9c]
mov byte [edx + eax], cl
xor ebx, 0xfffffffe
lea eax, [ebx + 1]
and esi, 0xfffffffc
mov ecx, eax
add ecx, esi
je 0x421dc7
and eax, 1
add esi, ebx
jne 0x421f47
mov ecx, 0xffffffff
jmp 0x421f8f
sub ebx, eax
mov ecx, dword [esp + 0x34]
and ecx, 0xfffffffc
lea edx, [ebx + ecx]
inc edx
mov ecx, 0xffffffff
mov edi, dword [esp + 0xc]
nop
nop
nop
mov ebx, ecx
shr ebx, 8
xor cl, byte [edi]
movzx ecx, cl
xor ebx, dword [ecx*4 + 0x43d7a0]
mov ecx, ebx
shr ecx, 8
xor bl, byte [edi + 1]
add edi, 2
movzx esi, bl
xor ecx, dword [esi*4 + 0x43d7a0]
add edx, 0xfffffffe
jne 0x421f60
mov dword [esp + 0xc], edi
mov esi, dword [esp + 0x1c]
test eax, eax
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
je 0x421fb6
mov eax, ecx
shr eax, 8
mov edi, dword [esp + 0xc]
xor cl, byte [edi]
movzx ecx, cl
xor eax, dword [ecx*4 + 0x43d7a0]
mov ecx, eax
not ecx
jmp 0x421dd5
lea eax, [edi + edi]
push eax
call fcn.00408d00
add esp, 4
mov esi, eax
push ebx
push edi
push eax
push 0x1e
lea eax, [esp + 0xec]
push eax
push 0
call dword [0x448c5c]
lea eax, [esp + 0xa0]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0xac], esi
push esi
call fcn.0043a800
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443aa8]
xor edx, edx
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
jmp dword [0x443b58]
push dword [esp + 0x9c]
mov edi, edx
call fcn.00408d10
add esp, 4
mov edx, edi
mov eax, edx
and al, 1
movzx ecx, al
mov edi, dword [esp + 0x28]
mov eax, edx
jmp dword [ecx*4 + 0x443b60]
lea eax, [esp + 0xd0]
push 0
push eax
push dword [esp + 0xa8]
call fcn.0043ab80
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x18]
jmp dword [eax*4 + 0x443ab0]
mov esi, dword [esp + 0xd0]
lea eax, [esi + 1]
push eax
call fcn.00408d00
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0xac]
call fcn.0043ac70
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x18]
jmp dword [eax*4 + 0x443ab8]
mov esi, dword [esp + 0xd0]
mov byte [edi + esi], 0
push 0x20
call fcn.00408d00
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 + 0xcc], eax
mov ecx, eax
push esi
mov dword [esp + 0xd8], edi
push edi
call fcn.00424090
movzx eax, al
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x18]
jmp dword [eax*4 + 0x443ac0]
mov dword [esp + 0x40], 0x37c03ed3
mov dword [esp + 0x44], 0xba48c833
mov dword [esp + 0x48], 0x47b3af87
mov dword [esp + 0x4c], 0xa08dbc4a
mov dword [esp + 0x50], 0x4ebbb040
mov dword [esp + 0x54], 0x5555968b
mov dword [esp + 0x58], 0x5fada856
mov dword [esp + 0x5c], 0xa7a1a08f
mov word [esp + 0x60], 0xcda1
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov dword [esp + 0x6a], 0
mov word [esp + 0x6e], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x2f
ja 0x4221e5
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x40]
mov edx, eax
and edx, 0x2d10433a
xor eax, 0x2d10433a
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x6a
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x30
jb 0x4221a0
mov ecx, dword [esp + 0xcc]
lea eax, [esp + 0x40]
push eax
call fcn.00424280
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x18]
jmp dword [ecx*4 + 0x443ac8]
mov edi, dword [esp + 0xd4]
jmp dword [0x443b48]
mov ebx, dword [esp + 0xcc]
mov ecx, ebx
call fcn.00424410
push ebx
call fcn.00408d10
add esp, 4
jmp dword [0x443b50]
jmp dword [0x443a80]
mov dword [esp + 0x28], edi
push dword [esp + 0x30]
call fcn.00408d10
add esp, 4
jmp dword [0x443a88]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], 0xa8a9aeaf
mov dword [esp + 0x44], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 7
ja 0x4222c4
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + 0x1a]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0xba259e1a
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0xdc]
add cl, 0x4a
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 8
jb 0x422280
mov ecx, dword [0x449c68]
test ecx, ecx
je case.0x421bcd.12
mov edx, dword [esp + 0x40]
xor esi, esi
mov edi, dword [0x449c6c]
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4223b7
inc esi
cmp ecx, esi
jne 0x4222e0
jmp case.0x421bcd.12
jmp dword [0x443b50]
push edi
call fcn.00408d10
add esp, 4
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x40], 0xa8a9aeaf
mov dword [esp + 0x44], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 7
ja 0x42237e
nop
nop
nop
nop
nop
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 + 0x1a]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0xba259e1a
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x4a
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 8
jb 0x422340
mov ecx, dword [0x449c68]
test ecx, ecx
mov ebx, dword [esp + 0x2c]
je 0x4224bf
mov edx, dword [esp + 0x40]
xor esi, esi
mov edi, dword [0x449c6c]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4224b3
inc esi
cmp ecx, esi
jne 0x4223a0
jmp 0x4224bf
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x421bcd.12
push eax
push 1
push dword [0x449c70]
push ecx
call fcn.00437ca0
add esp, 0x10
jmp case.0x421bcd.12
jmp dword [0x443a90]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], 0xa8a9aeaf
mov dword [esp + 0x44], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 7
ja 0x422454
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + 0x1a]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0xba259e1a
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0xdc]
add cl, 0x4a
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 8
jb 0x422410
mov ecx, dword [0x449c68]
test ecx, ecx
je 0x4223e0
mov edx, dword [esp + 0x40]
xor esi, esi
mov edi, dword [0x449c6c]
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x422490
inc esi
cmp ecx, esi
jne 0x422470
jmp 0x4223e0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x4223e0
push eax
push 1
push dword [0x449c70]
push ecx
call fcn.00437ca0
add esp, 0x10
jmp 0x4223e0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42261d
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
jmp dword [0x443b58]
mov eax, edx
and al, 1
movzx ecx, al
mov edi, dword [esp + 0x28]
mov eax, edx
jmp dword [ecx*4 + 0x443b60]
mov byte [esi], 0
sub esi, dword [esp + 0x18]
mov dword [esp + 0x40], 0x3f3a3ded
mov dword [esp + 0x44], 0x4bb7c6c1
mov dword [esp + 0x48], 0x4c4046bd
mov dword [esp + 0x4c], 0xb242ae83
mov dword [esp + 0x50], 0xa78948bd
mov dword [esp + 0x54], 0x55ab4e4b
mov dword [esp + 0x58], 0x5b5e975b
mov word [esp + 0x5c], 0xc15c
mov dword [esp + 0x62], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x25
ja 0x42259f
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x40]
mov edx, eax
and edx, 0xf495843a
xor eax, 0x7495843a
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
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 + 4], eax
mov eax, dword [esp + 4]
add al, 0x6a
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x26
jb 0x422550
mov ecx, dword [ebp + 8]
push esi
push dword [esp + 0x1c]
lea eax, [esp + 0x48]
push eax
call fcn.00409660
jmp dword [0x443b68]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x443b70]
jmp dword [0x443b78]
push dword [esp + 0x18]
mov esi, eax
call fcn.00408d10
mov eax, esi
add esp, 4
and al, 1
test edi, edi
je 0x422615
cmp edi, ebx
je 0x422615
mov dword [esp + 0x20], eax
mov esi, edi
jmp 0x4225f4
cmp esi, ebx
je 0x422608
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x4225f0
push eax
call fcn.00408d10
add esp, 4
jmp 0x4225f0
push edi
call fcn.00408d10
add esp, 4
mov eax, dword [esp + 0x20]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
push 1
push dword [0x449c70]
push ecx
call fcn.00437ca0
add esp, 0x10
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
jmp dword [0x443b58]
add eax, 8
mov dword [esp + 0x20], 0
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
mov esi, dword [esp + 0x18]
jmp dword [eax*4 + 0x443ad0]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x443ad0]
mov ebx, dword [ecx]
cmp dword [ecx + 0x18], 3
mov edi, 0
jne case.default.0x42268a
mov edi, dword [ecx + 0x10]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x443ad8]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x443ae0]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], esi
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne case.default.0x4226e8
sub eax, edi
inc eax
mov ecx, eax
shr ecx, 1
and eax, 2
mov dword [esp + 0xd8], ecx
xor ecx, 1
add ecx, eax
push ecx
call fcn.00408d00
add esp, 4
movsx edx, byte [edi]
xor ecx, ecx
test edx, edx
setne cl
mov dword [esp + 0x98], eax
jmp dword [ecx*4 + 0x443ae8]
mov byte [eax], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc ebx
movzx eax, byte [ebx - 1]
movsx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x422700
cmp ecx, 0x20
je 0x422700
movzx ecx, al
cmp ecx, 0x2b
je 0x422726
cmp ecx, 0x2d
jne 0x422a26
cmp al, 0x2b
sete byte [esp + 0x27]
movzx eax, byte [ebx]
cmp al, 0x30
jne 0x422744
movzx eax, byte [ebx + 1]
and al, 0xdf
xor ecx, ecx
cmp al, 0x58
sete cl
lea ebx, [ebx + ecx*2]
xor esi, esi
mov dword [esp + 0xc], 0
xor eax, eax
jmp 0x42282b
or edx, ecx
mov byte [eax], dl
inc eax
mov edi, dword [esp + 0xc]
movsx edx, byte [edi]
xor ecx, ecx
test edx, edx
setne cl
jmp dword [ecx*4 + 0x443ae8]
mov ecx, edx
or ecx, 0x20
lea esi, [ecx - 0x61]
add ecx, 0xffffffa9
add edx, 0xffffffd0
cmp edx, 0xa
jb 0x422792
mov edx, 0xffffffff
cmp esi, 6
jb case.default.0x4227ab
mov ecx, edx
lea edx, [edi + 1]
mov dword [esp + 0xc], edx
movsx esi, byte [edi + 1]
xor edx, edx
test esi, esi
setne dl
jmp dword [edx*4 + 0x443af0]
mov byte [eax], cl
inc eax
mov edi, dword [esp + 0xc]
movsx edx, byte [edi]
xor ecx, ecx
test edx, edx
setne cl
jmp dword [ecx*4 + 0x443ae8]
shl ecx, 4
add edi, 2
mov dword [esp + 0xc], edi
mov edx, esi
or edx, 0x20
lea edi, [edx - 0x61]
add edx, 0xffffffa9
add esi, 0xffffffd0
cmp esi, 0xa
jb 0x4227f2
mov esi, 0xffffffff
cmp edi, 6
jb 0x422760
mov edx, esi
jmp 0x422760
xor edx, edx
xor edi, edi
mov ecx, 0xffffffff
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x38], 0x22
add edx, ecx
adc edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x38]
mov dword [esp + 0xc], edx
mov eax, edi
mov edi, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38], esi
movsx ecx, byte [ebx]
lea edx, [ecx - 0x30]
cmp edx, 0xa
jb 0x422867
mov esi, eax
mov eax, ecx
and eax, 0xffffffdf
add eax, 0xffffffbf
cmp eax, 0x19
ja 0x4228e9
or cl, 0x20
cmp cl, 0x66
jg 0x4228e9
movsx edx, cl
add edx, 0xffffffa9
mov eax, esi
mov dword [esp + 0x1c], eax
inc ebx
mov ecx, edi
mov edi, eax
and edi, ecx
mov dword [esp + 0xc], 0xffffffff
mov esi, 0x22
mov eax, 0xffffffff
cmp edi, 0xffffffff
je 0x42282b
mov eax, dword [esp + 0x1c]
test ecx, 0xf0000000
je 0x4228b0
mov dword [esp + 0xc], 0xffffffff
mov eax, 0xffffffff
test edx, edx
jne 0x42282b
jmp 0x422802
shld ecx, eax, 4
shl eax, 4
mov esi, ecx
mov ecx, eax
mov edi, edx
sar edi, 0x1f
mov eax, edx
add eax, ecx
mov eax, edi
mov dword [esp + 0x1c], esi
adc eax, esi
mov dword [esp + 0xc], 0xffffffff
mov eax, 0xffffffff
mov esi, 0x22
jb 0x42282b
jmp 0x42281b
xor ebx, ebx
mov edx, esi
mov eax, esi
neg eax
mov ecx, 0
sbb ecx, edi
cmp byte [esp + 0x27], 0
jne case.default.0x422914
mov edx, eax
mov edi, ecx
mov dword [esp + 0x1c], edx
xor eax, eax
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x2c]
setne al
jmp dword [eax*4 + 0x443af8]
mov ebx, dword [ecx]
xor eax, eax
jmp dword [eax*4 + 0x443b08]
add ecx, 8
xor eax, eax
cmp ecx, dword [esp + 0x2c]
setne al
jmp dword [eax*4 + 0x443af8]
cmp dword [esp + 0x38], 0x22
setne al
mov edx, dword [ecx + 4]
mov esi, edx
shr esi, 0x1c
xor esi, edi
shl edx, 4
or edx, 1
xor edx, dword [esp + 0x1c]
or edx, esi
sete dl
and dl, al
movzx eax, dl
jmp dword [eax*4 + 0x443b00]
mov eax, 1
jmp dword [eax*4 + 0x443b08]
mov eax, dword [case.0x422209.20]
nop
nop
nop
nop
jmp eax
xor eax, eax
test ebx, ebx
setne al
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
jmp dword [eax*4 + 0x443b20]
jmp dword [0x443b30]
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x44], eax
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x422a15
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
push 0x932a8d34
push dword [0x449c74]
call fcn.00439c40
add esp, 8
lea ecx, [esp + 4]
lea edx, [esp + 0x10]
push edx
push 1
push 0
push 0
push ecx
push 0
lea ecx, [esp + 0x58]
push ecx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443b28]
mov ecx, dword [esp + 0x30]
jmp dword [0x443b30]
dec ebx
mov byte [esp + 0x27], 1
cmp al, 0x30
je 0x422734
jmp 0x422744
movzx eax, byte [ebx]
test al, al
je 0x422a5b
inc ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x422a50
mov word [esi], 0x203a
mov eax, esi
add eax, 2
mov esi, dword [esp + 0x10]
test esi, esi
je 0x422a95
mov ecx, dword [esp + 0x14]
mov edx, esi
and edx, 3
je 0x422a99
xor edi, edi
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + edi], bl
inc edi
cmp edx, edi
jne 0x422a7a
add eax, edi
mov edx, esi
sub edx, edi
mov edi, eax
jmp 0x422a9b
mov esi, eax
jmp 0x422adb
mov edx, esi
cmp esi, 4
mov esi, edi
jb 0x422adb
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 esi, [eax + 4]
mov byte [eax + 3], bl
mov eax, esi
add edx, 0xfffffffc
jne 0x422aa2
mov byte [esi], 0xa
inc esi
push 0x2e0ec9bb
push dword [0x449c60]
call fcn.00439c40
add esp, 8
push dword [esp + 0x14]
call eax
mov al, 1
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x30]
jmp dword [0x443b30]
push dword [esp + 0x98]
call fcn.00408d10
mov ecx, dword [esp + 0x34]
add esp, 4
mov eax, dword [case.0x42268a.0]
jmp eax