Function at 0x423195
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x468
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x60], 0xb900593
mov dword [esp + 0x64], 0xfef09e1
mov dword [esp + 0x68], 0x33de0d9d
mov dword [esp + 0x6c], 0x37a831d9
mov dword [esp + 0x70], 0x3b3435dd
mov dword [esp + 0x74], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x17
ja 0x422db5
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0xd5]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x798715d4
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x2d
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x18
jb 0x422d70
lea ebx, [esp + 0x60]
lea ecx, [esp + 0x48]
push ebx
call fcn.00438cd0
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x446f28]
lea ecx, [esp + 0x48]
push 0x410
call fcn.00438f40
not eax
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x446f30]
mov dword [esp + 0x60], 0x321b2035
mov dword [esp + 0x64], 0x18122d08
mov dword [esp + 0x68], 0xc150b29
mov dword [esp + 0x6c], 0x371e0625
mov dword [esp + 0x70], 0x18232a36
mov dword [esp + 0x74], 0x1f3c363d
mov dword [esp + 0x78], 0x1a113e12
mov dword [esp + 0x7c], 0x163f142b
mov dword [esp + 0x80], 0x3628262a
mov dword [esp + 0x84], 0x6e4bb559
mov dword [esp + 0x88], 0x83b24949
mov dword [esp + 0x8c], 0
mov dword [esp + 0x8f], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x32
ja 0x422ebf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0x12fdfb9c]
and edx, ecx
add eax, ecx
add eax, 0x12fdfb9c
add edx, edx
sub eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0xbc
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x33
jb 0x422e80
lea eax, [esp + 0xc]
lea ecx, [esp + 0x48]
push 0
push 0x2b
push ebx
push eax
call fcn.00439550
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
xor eax, eax
cmp esi, edi
sete al
mov dword [esp + 0x58], edi
jmp dword [eax*4 + 0x446f38]
mov eax, edi
sub eax, esi
sar eax, 2
imul eax, eax, 0x421
push eax
call fcn.00408cc0
add esp, 4
mov dword [esp + 0x40], 0
xor ecx, ecx
cmp esi, edi
setne cl
mov dword [esp + 0x3c], eax
mov dword [esp + 4], eax
jmp dword [ecx*4 + 0x446f60]
mov dword [esp + 0x5c], esi
mov esi, dword [esi]
push 0x400
push 0
push ebx
call fcn.00408d40
add esp, 0xc
lea eax, [esp + 0x28]
lea ecx, [esp + 0x48]
push eax
push 0x400
push ebx
push esi
call fcn.004393c0
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
xor eax, eax
jmp dword [ecx*4 + 0x446f68]
xor ecx, ecx
cmp dword [esp + 0x28], 0
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x446f70]
mov eax, 1
jmp dword [eax*4 + 0x446f78]
mov byte [esp + 0x45f], 0
movzx ecx, byte [esp + 0x60]
xor eax, eax
test cl, cl
je 0x422fb2
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp cl, 0x2e
je 0x422fb0
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x422fa0
jmp 0x422fb2
mov eax, edx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446f80]
lea esi, [eax + 1]
movzx ecx, byte [eax + 1]
xor edi, edi
test cl, cl
je 0x422fe2
mov edx, esi
nop
cmp cl, 0x2e
je 0x422fe0
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x422fd0
jmp 0x422fe2
mov edi, edx
xor ecx, ecx
test edi, edi
setne cl
jmp dword [ecx*4 + 0x446f88]
mov edx, edi
sub edx, esi
lea ebx, [edx + edx*2]
shr ebx, 2
cmp byte [eax + edx], 0x3d
je 0x423013
mov eax, edx
or eax, 0xfffffffe
mov ecx, edx
and ecx, 0xfffffffe
add ecx, eax
cmp byte [esi + ecx + 1], 0x2e
jne 0x423014
dec ebx
movzx eax, byte [edx + esi - 2]
cmp eax, 0x3d
mov dword [esp + 0x20], edx
je 0x423027
cmp eax, 0x2e
jne 0x423028
dec ebx
mov eax, ebx
and eax, 1
mov ecx, ebx
mov dword [esp + 0x54], ebx
xor ecx, 1
lea eax, [ecx + eax*2]
push eax
call fcn.00408cc0
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], esi
cmp edi, esi
je 0x423141
xor esi, esi
mov edi, 2
jmp 0x423072
mov edx, dword [esp + 0x44]
nop
lea eax, [edi + 4]
add edi, 2
mov esi, edx
cmp edi, ecx
mov edi, eax
jae 0x423141
mov ebx, dword [esp + 0x24]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00410680
add esp, 4
mov byte [esp + 0x1c], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00410680
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 + esi], al
lea edx, [esi + 1]
mov ecx, dword [esp + 0x20]
cmp edi, ecx
jae 0x423060
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + edi]
push eax
mov esi, edx
call fcn.00410680
mov edx, esi
mov ecx, dword [esp + 0x24]
add esp, 4
cmp al, 0x40
je 0x423060
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov esi, dword [esp + 0x1c]
lea edx, [esi + 2]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x18]
mov byte [edx + esi + 1], al
lea eax, [edi + 1]
cmp eax, ecx
jae 0x42305b
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00410680
mov ecx, dword [esp + 0x24]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x44]
je 0x423060
shl bl, 6
add al, bl
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov byte [edx + esi + 2], al
add esi, 3
mov edx, esi
jmp 0x423060
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x18]
mov byte [esi + eax], 0
push esi
call fcn.00401e80
add esp, 4
mov ebx, eax
jmp dword [0x446f90]
push esi
call fcn.00408cd0
add esp, 4
push ebx
call fcn.00402790
add esp, 4
mov ecx, dword [case.0x422fe9.6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446fa8]
jmp 0x423299
mov dword [esp + 0x28], 0x9bf814eb
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xb
ja 0x42321e
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx esi, byte [esp + edx + 0x28]
lea edi, [ecx + 0x54a73b14]
lea edx, [ecx + esi]
add edx, 0x54a73b14
and edi, esi
add ecx, 0x14
and ecx, esi
add ecx, edi
mov esi, ecx
xor esi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, esi
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x74
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x28], cl
mov ecx, dword [esp + 8]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, 0xc
jb 0x4231c0
lea ecx, [esp + 0x28]
push ecx
push eax
call fcn.004026e0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446fb0]
mov edx, dword [esp + 4]
jmp 0x423269
movzx ecx, byte [eax]
test cl, cl
je 0x42325d
inc eax
mov edx, dword [esp + 4]
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x423250
jmp 0x423261
mov edx, dword [esp + 4]
mov word [edx], 0x203a
add edx, 2
movzx eax, byte [esp + 0x60]
test al, al
je 0x42328b
lea ecx, [esp + 0x61]
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 0x423280
mov byte [edx], 0xa
inc edx
mov dword [esp + 4], edx
mov al, 1
mov dword [esp + 0x40], eax
push ebx
call fcn.00402a00
add esp, 4
lea ebx, [esp + 0x60]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x423233.7]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov esi, dword [esp + 0x5c]
add esi, 4
xor eax, eax
mov edi, dword [esp + 0x58]
cmp esi, edi
setne al
jmp dword [eax*4 + 0x446f60]
mov ecx, dword [esp + 0x40]
mov eax, ecx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x446fd8]
mov eax, dword [case.0x422fe9.24]
mov ebx, dword [esp + 0x3c]
jmp case.0x422fe9.22
jmp dword [0x446f48]
mov eax, dword [case.0x422ee5.9]
xor ecx, ecx
nop
nop
nop
jmp eax
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 4]
mov byte [eax], 0
mov ebx, dword [esp + 0x3c]
sub eax, ebx
mov dword [esp + 4], eax
mov dword [esp + 0x60], 0xe7d4d581
mov dword [esp + 0x64], 0xdbefece5
mov dword [esp + 0x68], 0xa6dedce1
mov dword [esp + 0x6c], 0x9ca484e3
mov dword [esp + 0x70], 0x8fe5a691
mov dword [esp + 0x74], 0xad9394ab
mov dword [esp + 0x78], 0xbba8efab
mov word [esp + 0x7c], 0x21b6
mov dword [esp + 0x7e], 0
mov dword [esp + 0x82], 0
mov byte [esp + 0x86], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x26
ja 0x4233cf
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x60]
add eax, 0xfcdb8735
mov esi, eax
and esi, edx
mov edi, eax
xor edi, edx
or eax, edx
xor eax, edi
lea edx, [edi + esi*2]
add eax, esi
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
add al, 0x8d
mov edx, dword [esp]
mov byte [esp + edx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x27
jb 0x423390
lea eax, [esp + 0x60]
push dword [esp + 4]
push ebx
push eax
call fcn.00409640
mov ecx, eax
mov eax, dword [case.0x422fe9.24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x446ff0]
push ebx
mov esi, ecx
call fcn.00408cd0
mov ecx, esi
add esp, 4
mov eax, dword [case.0x422fe9.31]
nop
nop
nop
nop
nop
nop
jmp eax
and cl, 1
mov eax, dword [case.0x422ee5.9]
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 0xc]
test eax, eax
je case.0x422dc8.1
cmp eax, dword [esp + 0x10]
je case.0x422dc8.1
push eax
mov esi, ecx
call fcn.00408cd0
mov ecx, esi
add esp, 4
mov ebx, ecx
lea ecx, [esp + 0x48]
call fcn.00439090
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor edx, edx
test eax, eax
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x4470a0]
jmp dword [ecx*4 + 0x447018]
mov dword [esp + 0x38], 0xb340b15c
mov dword [esp + 0x3c], 0xb771b571
mov dword [esp + 0x40], 0xab59a951
mov dword [esp + 0x44], 0xaf5cad58
mov dword [esp + 0x48], 0xa34ea149
mov dword [esp + 0x4c], 0xa767a559
mov dword [esp + 0x50], 0x5ba2599b
mov dword [esp + 0x54], 0x5fa05da5
mov dword [esp + 0x58], 0x53be5195
mov dword [esp + 0x5c], 0x57a955a7
mov dword [esp + 0x60], 0x4bbe498e
mov dword [esp + 0x64], 0x4f8f4dbb
mov dword [esp + 0x68], 0x438741b2
mov dword [esp + 0x6c], 0x47b045a8
mov dword [esp + 0x70], 0x7be67999
mov dword [esp + 0x74], 0x7f9b7dea
mov dword [esp + 0x78], 0x7381719c
mov dword [esp + 0x7c], 0x779375e0
mov dword [esp + 0x80], 0x6bf76989
mov word [esp + 0x84], 0x6d6c
mov dword [esp + 0x8a], 0
mov dword [esp + 0x86], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x55
ja 0x4235dd
nop
nop
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xac]
movzx edx, byte [esp + edx + 0x38]
mov esi, ecx
and esi, 0xd0770068
xor ecx, 0x50770068
lea ecx, [ecx + esi*2]
mov esi, ecx
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0xe4]
add cl, 0x28
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x56
jb 0x423580
lea ecx, [esp + 0xc]
lea edx, [esp + 0x38]
push 0
push 0
push eax
push ecx
push edx
call fcn.0043de60
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x447020]
mov eax, dword [case.0x4235f7.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0x18], ebx
mov esi, dword [esp + 0xc]
mov eax, dword [case.0x4235f7.8]
nop
jmp eax
lea edi, [esp + 0x34]
mov ebx, esp
jmp dword [0x44704c]
push edi
push ebx
push 0
push 0
push 0
push 0
push 0
push 0
push esi
call fcn.0043e280
add esp, 0x24
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edi
push ebx
push 0
push 0
push 0
push 0
push 0
push 0
push esi
call fcn.0043e280
add esp, 0x24
jmp dword [0x447054]
not eax
shr eax, 0x1f
mov ebx, dword [esp + 0x18]
jmp dword [eax*4 + 0x447058]
mov ecx, dword [esp + 0x34]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x42368f
mov eax, 0xffffffff
push eax
call fcn.00408cc0
add esp, 4
mov esi, eax
mov dword [esp + 0x38], 0x73c06da5
mov dword [esp + 0x3c], 0x77c271c7
mov dword [esp + 0x40], 0x7bd675d5
mov dword [esp + 0x44], 0x7fae79d4
mov dword [esp + 0x48], 0x43f67ddd
mov dword [esp + 0x4c], 0x474641e8
mov word [esp + 0x50], 0
mov dword [esp + 0xac], 0
mov eax, dword [esp + 0xac]
cmp eax, 0x19
ja 0x423754
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, eax
and edx, 0xc8b0e18e
xor eax, 0x48b0e18e
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 + 0xe4], eax
mov eax, dword [esp + 0xe4]
add al, 0x1e
mov ecx, dword [esp + 0xac]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0xac]
mov eax, dword [esp + 0xac]
cmp eax, 0x1a
jb 0x4236f0
push edi
push esi
push 0
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x1c]
call fcn.0043e8d0
add esp, 0x14
shr eax, 0x1f
mov ebx, esi
jmp dword [eax*4 + 0x447060]
xor ebx, ebx
jmp dword [0x447068]
push esi
call fcn.00408cd0
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38], 0x92919097
lea ecx, [esp + 0x3c]
mov byte [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0xc
ja 0x42382d
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xac]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x25b61a43]
lea edi, [ecx + 0x43]
or esi, edi
and edi, edx
and esi, edx
add esi, edi
add ecx, edx
add ecx, 0x25b61a43
sub ecx, esi
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0xe4]
add cl, 0x2b
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0xd
jb 0x4237d0
mov ecx, dword [0x44d2ec]
test ecx, ecx
je 0x423880
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x44d2f0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x423874
inc esi
cmp ecx, esi
jne 0x423850
jmp 0x423880
mov eax, 4
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x447090]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne case.default.0x42388c
nop
nop
nop
nop
xor ecx, ecx
test ebx, ebx
setne cl
mov eax, 2
jmp dword [ecx*4 + 0x447070]
lea eax, [esp + 0x38]
push eax
call fcn.0043d420
add esp, 4
movzx edx, al
xor eax, eax
mov ecx, 1
jmp dword [edx*4 + 0x447078]
xor edx, edx
cmp dword [esp + 0x38], 1
sete dl
jmp dword [edx*4 + 0x447080]
jmp dword [ecx*4 + 0x447088]
push eax
push 1
push dword [0x44d2f4]
push ecx
call fcn.0043ab60
add esp, 0x10
xor ecx, ecx
test ebx, ebx
setne cl
mov eax, 2
jmp dword [ecx*4 + 0x447070]
mov eax, 2
xor ecx, ecx
jmp dword [ecx*4 + 0x447088]
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x447090]
xor eax, eax
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x447090]
xor edx, edx
cmp eax, 4
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x447098]
xor eax, eax
test ebx, ebx
sete al
mov ecx, ebx
xor ebx, ebx
jmp dword [eax*4 + 0x4470a8]
mov ebx, ecx
mov dword [esp + 0x38], 0xab05ad08
mov dword [esp + 0x3c], 0x9704a93b
mov dword [esp + 0x40], 0x933b953e
mov dword [esp + 0x44], 0x9f3a913b
mov dword [esp + 0x48], 0x9b099d33
mov dword [esp + 0x4c], 0x872c990a
mov dword [esp + 0x50], 0x8329852d
mov dword [esp + 0x54], 0x8f1481d2
mov dword [esp + 0x58], 0x8b208d20
lea eax, [esp + 0x5c]
mov word [esp + 0x5c], 0x8988
mov dword [esp + 0x5e], 0
mov dword [esp + 0x61], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x2c
ja 0x423a26
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xac]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x3d36781a]
and esi, edx
add ecx, edx
add ecx, 0x3d36781a
add esi, esi
sub ecx, esi
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0xe4]
add cl, 0x4a
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x2d
jb 0x4239d0
lea edi, [esp + 0xac]
lea edx, [esp + 0x38]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xd0]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
mov esi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x423a60
cmp eax, 0xffffffd9
jge 0x423a77
mov eax, 0xffffffff
jmp 0x423a7a
add eax, 0x26
push eax
call fcn.00408cc0
add esp, 4
mov ebx, eax
movzx ecx, word [esi]
test cx, cx
je 0x423ab1
lea edx, [esi + 2]
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x423aa0
mov word [eax], 0
movzx ecx, word [esp + 0xac]
test cx, cx
je 0x423ae1
lea edx, [esp + 0xae]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x423ad0
mov word [eax], 0
jmp dword [0x4470b0]
jmp dword [0x4470bc]
push esi
call fcn.00408cd0
add esp, 4
nop
nop
nop
nop
nop
push esi
call fcn.00408cd0
add esp, 4
jmp dword [0x4470c4]
mov eax, esp
push 0x60
push 3
push 0x120089
push eax
push ebx
call fcn.0043d650
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4470c8]
xor edi, edi
xor esi, esi
jmp dword [0x447168]
push ebx
call fcn.00408cd0
add esp, 4
xor eax, eax
cmp edi, esi
sete al
xor ebx, ebx
mov ecx, esi
mov esi, edi
jmp dword [eax*4 + 0x447170]
mov dword [esp + 0x98], ebx
lea eax, [esp + 0x34]
push 0
push eax
push dword [esp + 8]
call fcn.0043d9f0
add esp, 0xc
mov ecx, dword [case.0x4238e7.26]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
xor ecx, ecx
xor edi, edi
jmp dword [eax*4 + 0x4470e0]
mov esi, dword [esp + 0x34]
lea eax, [esi + 1]
push eax
call fcn.00408cc0
add esp, 4
push 0
push esi
mov dword [esp + 0x9c], eax
push eax
push dword [esp + 0xc]
call fcn.0043daf0
add esp, 0x10
not eax
shr eax, 0x1f
xor ecx, ecx
xor edi, edi
jmp dword [eax*4 + 0x4470e8]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x94]
mov byte [edi + esi], 0
push 0x20
call fcn.00408cc0
add esp, 4
mov ebx, 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 ecx, eax
push esi
push edi
call fcn.00425f90
movzx eax, al
xor edx, edx
xor edi, edi
jmp dword [eax*4 + 0x4470f0]
jmp dword [0x4470f8]
push dword [esp + 0xa4]
mov ebx, eax
call fcn.00408cd0
mov eax, ebx
add esp, 4
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x447290]
mov byte [edi], 0
sub edi, esi
mov dword [esp + 0x38], 0x7141561
mov dword [esp + 0x3c], 0x1b0f0c05
mov dword [esp + 0x40], 0x61e1c01
mov dword [esp + 0x44], 0x1c046443
mov dword [esp + 0x48], 0x6f450611
mov dword [esp + 0x4c], 0xd13140b
mov dword [esp + 0x50], 0x3b084f0b
mov word [esp + 0x54], 0x8136
mov dword [esp + 0x56], 0
mov dword [esp + 0x59], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x24
ja 0x423cea
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x4c09f745]
and edx, ecx
add eax, ecx
add eax, 0x4c09f745
add edx, edx
sub eax, edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x1d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x25
jb 0x423cb0
mov ecx, dword [ebp + 8]
push edi
push esi
lea eax, [esp + 0x40]
push eax
call fcn.00409640
jmp dword [0x447298]
push esi
mov esi, eax
call fcn.00408cd0
mov eax, esi
add esp, 4
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
jmp dword [0x4472a0]
mov dword [esp + 0x38], 0xf7040e13
mov dword [esp + 0x3c], 0x2f404f3
mov dword [esp + 0x40], 0x70b1f47
mov dword [esp + 0x44], 0x1c4108fa
mov dword [esp + 0x48], 0xfef3f404
mov dword [esp + 0x4c], 0xf9f9d6bb
mov dword [esp + 0x50], 0xff9fcf6
mov dword [esp + 0x54], 0xf7fdfcdf
mov word [esp + 0x58], 0x81e5
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2d
ja 0x423dd2
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax - 0x522b2210]
lea esi, [eax + 0xf0]
and esi, ecx
and edx, esi
add eax, ecx
add eax, 0xadd4ddf0
add edx, esi
sub eax, edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x70
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2e
jb 0x423d90
mov ecx, dword [esp + 0xd4]
lea eax, [esp + 0x38]
push eax
call fcn.004261d0
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], edx
xor edx, edx
jmp dword [ecx*4 + 0x447198]
jmp dword [0x4471a8]
add eax, 8
xor edx, edx
mov esi, dword [eax]
xor eax, eax
test esi, esi
setne al
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
mov ecx, esi
jmp dword [eax*4 + 0x4471b0]
mov edi, dword [ecx]
cmp dword [ecx + 0x18], 3
mov ebx, 0
jne case.default.0x423e47
mov ebx, dword [ecx + 0x10]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x4471c8]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x4471d0]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x9c], edx
mov eax, ebx
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x423ea1
sub ecx, ebx
inc ecx
shr ecx, 1
mov dword [esp + 0xe0], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408cc0
add esp, 4
movsx ecx, byte [ebx]
xor edx, edx
test ecx, ecx
setne dl
mov dword [esp + 0xd8], eax
jmp dword [edx*4 + 0x4471d8]
inc esi
mov byte [eax], cl
inc eax
movsx ecx, byte [esi]
xor edx, edx
test ecx, ecx
setne dl
mov ebx, esi
jmp dword [edx*4 + 0x4471d8]
mov edx, ecx
or edx, 0x20
lea esi, [edx - 0x61]
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0x423edc
mov ecx, 0xffffffff
cmp esi, 6
jae case.default.0x423ef3
add edx, 0xffffffa9
mov ecx, edx
movsx edx, byte [ebx + 1]
mov esi, ebx
xor ebx, ebx
test edx, edx
setne bl
jmp dword [ebx*4 + 0x4471e0]
mov dword [esp + 8], eax
mov ebx, esi
mov esi, edx
or esi, 0x20
lea eax, [esi - 0x61]
mov dword [esp + 0x14], eax
add edx, 0xffffffd0
cmp edx, 0xa
jb 0x423f19
mov edx, 0xffffffff
shl ecx, 4
add ebx, 2
cmp dword [esp + 0x14], 6
jae case.default.0x423f3e
add esi, 0xffffffa9
mov edx, esi
mov eax, dword [esp + 8]
or edx, ecx
mov byte [eax], dl
inc eax
movsx ecx, byte [ebx]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x4471d8]
mov byte [eax], 0
nop
nop
nop
nop
nop
nop
nop
nop
inc edi
movzx eax, byte [edi - 1]
movsx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x423f50
cmp ecx, 0x20
je 0x423f50
movzx ecx, al
cmp ecx, 0x2b
je 0x423f76
cmp ecx, 0x2d
jne 0x424247
cmp al, 0x2b
sete byte [esp + 0x1f]
movzx eax, byte [edi]
cmp al, 0x30
jne 0x423f9c
movsx eax, byte [edi + 1]
mov ecx, eax
not ecx
or ecx, 0xffffffdf
add ecx, eax
xor eax, eax
cmp ecx, 0x57
sete al
lea edi, [edi + eax*2]
xor esi, esi
mov dword [esp + 0x14], 0
xor ecx, ecx
jmp 0x423fd3
xor edx, edx
xor ebx, ebx
mov eax, 0xffffffff
mov dword [esp + 8], 0xffffffff
mov dword [esp + 0x2c], 0x22
add edx, eax
adc ebx, dword [esp + 8]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x14], edx
mov ecx, ebx
mov eax, ecx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x2c], esi
movsx ecx, byte [edi]
lea edx, [ecx - 0x30]
cmp edx, 0xa
jb 0x424013
mov dword [esp + 8], eax
mov eax, ecx
and eax, 0xffffffdf
add eax, 0xffffffbf
cmp eax, 0x19
ja 0x424099
or cl, 0x20
cmp cl, 0x66
jg 0x424099
movsx edx, cl
add edx, 0xffffffa9
mov eax, dword [esp + 8]
inc edi
mov dword [esp + 0x30], ebx
and ebx, eax
mov dword [esp + 0x14], 0xffffffff
mov esi, 0x22
mov ecx, 0xffffffff
cmp ebx, 0xffffffff
je 0x423fd3
mov ecx, dword [esp + 0x30]
test eax, 0xf0000000
je 0x424060
mov dword [esp + 0x14], 0xffffffff
mov ecx, 0xffffffff
test edx, edx
jne 0x423fd3
jmp 0x423faa
shld eax, ecx, 4
shl ecx, 4
mov ebx, edx
sar ebx, 0x1f
mov esi, eax
mov eax, edx
add eax, ecx
mov eax, ebx
mov dword [esp + 8], esi
adc eax, esi
mov eax, ecx
mov dword [esp + 0x14], 0xffffffff
mov ecx, 0xffffffff
mov esi, 0x22
jb 0x423fd3
jmp 0x423fc3
mov dword [esp + 0xa0], 0
mov eax, ebx
neg eax
mov ecx, 0
sbb ecx, dword [esp + 8]
cmp byte [esp + 0x1f], 0
jne case.default.0x4240e1
mov ebx, eax
mov dword [esp + 8], ecx
mov dword [esp + 0x30], ebx
mov esi, dword [case.0x423df4.25]
mov ebx, dword [case.0x423df4.32]
mov ecx, dword [case.0x423df4.37]
xor eax, eax
mov edi, dword [esp + 0x18]
cmp edi, dword [esp + 0x24]
setne al
jmp dword [eax*4 + 0x4471e8]
jmp esi
cmp dword [esp + 0x2c], 0x22
setne byte [esp + 0x14]
mov edx, dword [edi + 4]
mov eax, edx
shr eax, 0x1c
xor eax, dword [esp + 8]
shl edx, 4
or edx, 1
xor edx, dword [esp + 0x30]
or edx, eax
sete al
and al, byte [esp + 0x14]
movzx eax, al
jmp dword [eax*4 + 0x447200]
mov eax, 1
jmp dword [eax*4 + 0x447208]
mov eax, dword [edi]
mov dword [esp + 0xa0], eax
xor eax, eax
jmp dword [eax*4 + 0x447208]
lea eax, [edi + 8]
jmp ebx
jmp ecx
xor edx, edx
cmp eax, dword [esp + 0x24]
setne dl
mov edi, eax
jmp dword [edx*4 + 0x4471e8]
xor eax, eax
mov esi, dword [esp + 0xa0]
test esi, esi
setne al
jmp dword [eax*4 + 0x447230]
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x3c], eax
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x424202
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
mov dword [esp], 0
mov dword [esp + 4], 0
push 0x932a8d34
push dword [0x44d2f8]
call fcn.0043cad0
add esp, 8
lea ecx, [esp + 0xc]
mov edx, esp
push edx
push 1
push 0
push 0
push ecx
push 0
lea ecx, [esp + 0x50]
push ecx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447238]
movzx eax, byte [esi]
test al, al
mov edi, dword [esp + 0x20]
je 0x42422b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x424220
mov word [edi], 0x203a
lea esi, [edi + 2]
mov edx, dword [esp]
test edx, edx
je 0x42425a
mov eax, dword [esp + 4]
test dl, 1
jne 0x42425e
mov ecx, edx
jmp 0x424276
dec edi
mov byte [esp + 0x1f], 1
cmp al, 0x30
je 0x423f84
jmp 0x423f9c
mov edi, esi
jmp 0x4242a2
mov ecx, edx
not ecx
movzx ebx, byte [eax]
cmp bl, 1
sbb eax, 0xffffffff
lea ecx, [ecx + edx*2]
mov byte [edi + 2], bl
add edi, 3
mov esi, edi
cmp edx, 1
je 0x4242a2
lea edx, [ecx + ecx]
mov edi, esi
movzx ebx, byte [eax]
cmp bl, 1
sbb eax, 0xffffffff
mov byte [edi], bl
movzx ebx, byte [eax]
cmp bl, 1
sbb eax, 0xffffffff
mov byte [edi + 1], bl
add edi, 2
add edx, 0xfffffffc
add ecx, 0xfffffffe
jne 0x424280
mov byte [edi], 0xa
inc edi
mov dword [esp + 0x20], edi
push 0x2e0ec9bb
push dword [0x44d2e4]
call fcn.0043cad0
add esp, 8
push dword [esp + 4]
call eax
mov al, 1
mov dword [esp + 0x9c], eax
mov eax, dword [case.0x423df4.38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x94]
jmp dword [0x447250]
push dword [esp + 0xd8]
call fcn.00408cd0
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0xa0]
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x4238e7.125]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x4471b0]
jmp dword [0x4471c4]
mov esi, edx
jmp dword [0x447138]
mov ecx, ebx
call fcn.00426360
jmp dword [0x447140]
jmp dword [0x447268]
mov edi, dword [esp + 0xd4]
mov ecx, edi
mov esi, edx
call fcn.00426360
push edi
call fcn.00408cd0
mov edx, esi
add esp, 4
jmp case.0x4238e7.70
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x447290]
jmp dword [0x447298]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
jmp dword [0x4472a0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
and bl, 1
jmp dword [0x4472a8]
lea eax, [esp + 0xdc]
push 0
push eax
push dword [esp + 0xb0]
call fcn.0043d9f0
add esp, 0xc
not eax
shr eax, 0x1f
xor edx, edx
mov edi, dword [esp + 0x28]
mov dword [esp + 0x20], edi
jmp dword [eax*4 + 0x447180]
mov esi, dword [esp + 0xdc]
lea eax, [esi + 1]
push eax
call fcn.00408cc0
add esp, 4
push 0
push esi
mov dword [esp + 0xa0], eax
push eax
push dword [esp + 0xb4]
call fcn.0043daf0
add esp, 0x10
not eax
shr eax, 0x1f
xor edx, edx
mov dword [esp + 0x20], edi
jmp dword [eax*4 + 0x447188]
mov eax, dword [case.0x4238e7.130]
nop
nop
jmp eax
mov eax, dword [esp + 0x98]
jmp dword [0x447280]
push eax
mov esi, edx
call fcn.00408cd0
mov edx, esi
add esp, 4
mov ebx, edx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x38], 0x92919097
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov byte [esp + 0x44], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xc
ja 0x4244e3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x25b61a43]
lea edi, [ecx + 0x43]
or esi, edi
and edi, edx
and esi, edx
add esi, edi
add ecx, edx
add ecx, 0x25b61a43
sub ecx, esi
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0x2b
mov edx, dword [esp]
mov byte [esp + edx + 0x38], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xd
jb 0x4244a0
mov ecx, dword [0x44d2ec]
test ecx, ecx
je 0x424518
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x44d2f0]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x424510
inc esi
cmp ecx, esi
jne 0x424500
jmp 0x424518
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42458d
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
mov eax, ebx
jmp dword [0x447288]
mov esi, dword [esp + 0xdc]
mov ebx, dword [esp + 0x98]
mov byte [ebx + esi], 0
push 0x20
call fcn.00408cc0
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esp + 0xd4], eax
mov ecx, eax
push esi
push ebx
call fcn.00425f90
movzx eax, al
xor edx, edx
mov dword [esp + 0x20], edi
jmp dword [eax*4 + 0x447190]
push eax
push 1
push dword [0x44d2f4]
push ecx
call fcn.0043ab60
add esp, 0x10
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
mov eax, ebx
jmp dword [0x447288]
xor eax, eax
test ecx, ecx
setne al
mov esi, edi
mov ebx, dword [esp + 0x9c]
jmp dword [eax*4 + 0x447110]
mov dword [esp + 0x2c], ecx
mov eax, dword [ecx]
mov dword [esp + 8], eax
mov ecx, edx
sub ecx, esi
sar ecx, 3
mov eax, dword [esp + 0x14]
cmp edx, eax
mov dword [esp + 0x30], ecx
je 0x4245e8
mov edi, esi
jmp 0x42465b
lea eax, [ecx + 1]
mov edi, ecx
shr edi, 1
add edi, ecx
cmp edi, eax
ja 0x4245f7
mov edi, eax
lea eax, [edi*8]
push eax
call fcn.00408cc0
add esp, 4
mov ebx, eax
test esi, esi
je 0x42464f
mov eax, dword [esp + 0x14]
cmp esi, eax
je 0x424646
xor eax, eax
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + eax]
mov dword [edx + eax], ecx
mov ecx, dword [esi + eax + 4]
mov dword [edx + eax + 4], ecx
mov dword [esi + eax], 0
lea ecx, [esi + eax]
add ecx, 8
add eax, 8
cmp ecx, dword [esp + 0x14]
jne 0x424620
mov eax, esi
push eax
call fcn.00408cd0
add esp, 4
mov ecx, dword [esp + 0x30]
lea edx, [ebx + ecx*8]
lea eax, [ebx + edi*8]
mov edi, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], edx
mov dword [edi + ecx*8], 0
mov dword [edi + ecx*8 + 4], 0
xor ebx, ebx
mov eax, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ebx
inc ebx
cmp byte [eax + esi], 0
jne 0x424680
lea ecx, [ebx - 1]
mov dword [esp + 0x20], ecx
push ebx
call fcn.00408cc0
add esp, 4
mov ecx, eax
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x30]
mov dword [edi + eax*8], ecx
mov eax, ecx
mov ecx, ebx
shr ecx, 2
mov edx, dword [esp + 8]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
add eax, edx
add edx, dword [esp + 8]
mov ecx, ebx
and ecx, 3
mov dword [esp + 0xa0], ecx
shr ecx, 1
mov dword [esp + 0x28], edx
mov dword [esp + 0xa4], eax
mov edi, eax
mov eax, dword [esp + 0x28]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, ebx
xor ecx, 2
and ecx, dword [esp + 0xa0]
je 0x424711
mov eax, ebx
and eax, 2
add edx, eax
mov edi, dword [esp + 0xa4]
add edi, eax
push ecx
push edx
push edi
call fcn.00408cf0
add esp, 0xc
xor eax, eax
cmp ebx, 1
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
je 0x4247ab
xor eax, eax
cmp ebx, 2
je 0x424783
and esi, 0xfffffffe
xor eax, eax
mov ebx, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [ebx]
xor cl, al
not cl
movzx ecx, cl
shr eax, 8
or eax, 0xff000000
xor eax, dword [ecx*4 + 0x4407a0]
movzx ecx, byte [ebx + 1]
xor cl, al
add ebx, 2
not cl
movzx ecx, cl
shr eax, 8
or eax, 0xff000000
xor eax, dword [ecx*4 + 0x4407a0]
add esi, 0xfffffffe
jne 0x424740
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x2c]
test byte [esp + 0x20], 1
je 0x4247ab
mov ecx, dword [esp + 8]
movzx ecx, byte [ecx]
xor cl, al
not cl
movzx ecx, cl
shr eax, 8
or eax, 0xff000000
xor eax, dword [ecx*4 + 0x4407a0]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov dword [edi + esi*8 + 4], eax
add edx, 8
jmp dword [0x447118]
mov ecx, dword [ecx + 4]
jmp dword [0x447120]
mov eax, dword [ecx + 4]
mov ecx, dword [eax + 4]
jmp dword [0x447120]
push dword [esp + 0x18]
call fcn.00408cd0
add esp, 4
xor ecx, ecx
xor esi, esi
jmp dword [0x4472b8]
test esi, esi
je 0x4247f0
cmp esi, ecx
je 0x4247f0
mov dword [esp + 0x18], esi
jmp 0x424814
cmp esi, ecx
je 0x4247e0
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x424810
push eax
mov edi, ecx
call fcn.00408cd0
mov ecx, edi
add esp, 4
jmp 0x424810
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jmp dword [0x4472b0]
test esi, esi
je case.0x4238e7.144
cmp esi, ecx
je case.0x4238e7.144
mov dword [esp + 0x18], esi
jmp 0x424854
cmp esi, ecx
je 0x42486c
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x424850
push eax
mov edi, ecx
call fcn.00408cd0
mov ecx, edi
add esp, 4
jmp 0x424850
push dword [esp + 0x18]
call fcn.00408cd0
add esp, 4
xor ecx, ecx
xor esi, esi
jmp case.0x4238e7.144
xor ecx, ecx
test eax, eax
setne cl
xor edx, edx
xor edi, edi
jmp dword [ecx*4 + 0x447108]
mov eax, dword [case.0x4238e7.32]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [eax + 8]
xor edx, edx
xor eax, eax
test ecx, ecx
setne al
xor edi, edi
xor esi, esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x9c], ebx
jmp dword [eax*4 + 0x447110]
mov dword [esp + 0x38], 0xa7b4ae8b
mov dword [esp + 0x3c], 0x8a94849b
mov dword [esp + 0x40], 0x9783bfd7
mov dword [esp + 0x44], 0xbcd98092
mov dword [esp + 0x48], 0x9e8b8494
mov dword [esp + 0x4c], 0x9495b4c3
mov dword [esp + 0x50], 0x8f848c87
mov word [esp + 0x54], 0xfd8f
mov dword [esp + 0x56], 0
mov word [esp + 0x5a], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x23
ja 0x424972
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x5c]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xcc56fe5c
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xe4]
add al, 0x7c
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x24
jb 0x424930
mov ecx, ebx
lea eax, [esp + 0x38]
push eax
call fcn.004261d0
jmp dword [0x447104]
mov dword [esp + 0x38], 0xa7b4ae8b
mov dword [esp + 0x3c], 0x8a94849b
mov dword [esp + 0x40], 0x9783bfd7
mov dword [esp + 0x44], 0xbcd98092
mov dword [esp + 0x48], 0x9e8b8494
mov dword [esp + 0x4c], 0x9495b4c3
mov dword [esp + 0x50], 0x8f848c87
mov word [esp + 0x54], 0xfd8f
mov dword [esp + 0x56], 0
mov word [esp + 0x5a], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x23
ja 0x424a32
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x5c]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xcc56fe5c
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xe4]
add al, 0x7c
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x24
jb 0x4249f0
mov ecx, ebx
lea eax, [esp + 0x38]
push eax
call fcn.004261d0
jmp case.0x4238e7.34
jmp dword [0x447160]
push dword [esp + 0x94]
mov esi, ecx
call fcn.00408cd0
mov ecx, esi
add esp, 4
mov dword [esp + 0x24], ecx
mov ebx, edi
mov eax, dword [esp]
mov dword [esp + 0x38], 0x92919097
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov byte [esp + 0x44], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0xc
ja 0x424aee
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x25b61a43]
lea edi, [ecx + 0x43]
or esi, edi
and edi, edx
and esi, edx
add esi, edi
add ecx, edx
add ecx, 0x25b61a43
sub ecx, esi
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0xe4]
add cl, 0x2b
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0xd
jb 0x424aa0
mov ecx, dword [0x44d2ec]
test ecx, ecx
je 0x424b2c
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x44d2f0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x424b20
inc esi
cmp ecx, esi
jne 0x424b10
jmp 0x424b2c
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x424d09
mov edi, ebx
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x98]
jmp dword [0x447168]
xor eax, eax
cmp edi, esi
sete al
xor ebx, ebx
mov ecx, esi
mov esi, edi
jmp dword [eax*4 + 0x447170]
mov dword [esp + 0x24], ecx
mov eax, ecx
mov dword [esp + 0x18], esi
sub eax, esi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.00408cc0
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], 0x33ee3115
mov dword [esp + 0x3c], 0x37d535cb
mov dword [esp + 0x40], 0xcb36c929
mov dword [esp + 0x44], 0xcf3ecd0d
mov dword [esp + 0x48], 0xc306c130
mov dword [esp + 0x4c], 0xc732c525
mov dword [esp + 0x50], 0xdbffd939
mov dword [esp + 0x54], 0xdf0ddd30
mov dword [esp + 0x58], 0xd337d124
mov dword [esp + 0x5c], 0xd72bd535
mov dword [esp + 0x60], 0xeb16e904
mov dword [esp + 0x64], 0xef0ded13
mov dword [esp + 0x68], 0xe31ee101
mov dword [esp + 0x6c], 0xe710e5da
mov dword [esp + 0x70], 0xfb1cf91c
lea eax, [esp + 0x74]
mov word [esp + 0x74], 0xfdfc
mov dword [esp + 0x76], 0
mov dword [esp + 0x7a], 0
mov word [esp + 0x7e], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x47
ja 0x424c62
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0xf8]
mov edi, edx
not edi
or edi, esi
and esi, edx
add esi, edi
neg esi
add ecx, esi
add ecx, 0xac1e00f7
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0x38
mov edx, dword [esp]
mov byte [esp + edx + 0x38], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x48
jb 0x424c20
lea ebx, [esp + 0xe4]
lea edx, [esp + 0x38]
mov edi, ebx
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x120]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esp + 0x34]
push eax
push 0
push 0
push 0x1e
push ebx
push 0
call dword [0x44c2e0]
mov edi, dword [esp + 0x34]
test edi, edi
jns 0x424cae
mov eax, 0xffffffff
jmp 0x424cb1
lea eax, [edi + edi]
push eax
call fcn.00408cc0
add esp, 4
mov esi, eax
lea eax, [esp + 0x34]
push eax
push edi
push esi
push 0x1e
push ebx
push 0
call dword [0x44c2e0]
lea eax, [esp + 0xa8]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0xb4], esi
push esi
call fcn.0043d650
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x447178]
xor eax, eax
mov esi, dword [esp + 0x28]
mov edi, esi
jmp dword [0x447288]
push eax
push 1
push dword [0x44d2f4]
push ecx
call fcn.0043ab60
add esp, 0x10
mov edi, ebx
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x98]
jmp dword [0x447168]
push ebx
call fcn.00408cd0
add esp, 4
push ebx
call fcn.00408cd0
add esp, 4
jmp dword [0x447148]
mov eax, dword [case.0x4238e7.30]
mov ecx, esi
nop
nop
nop
jmp eax