Function at 0x41ac4a
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x190
mov eax, dword [0x447b4c]
mov dword [esp + 0x110], 0x55544b52
mov word [esp + 0x114], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x110]
mov esi, ecx
or esi, 0x93fbebc8
mov edi, esi
and edi, edx
add edx, ecx
add edx, 0x93fbebc8
mov ebx, edx
not ebx
lea edi, [ebx + edi*2]
and edi, esi
mov ebx, edi
and ebx, 2
mov ebp, edi
or ebp, 0xfffffffd
inc ebp
mov esi, edi
and esi, 0x93fbebcd
imul esi, ebp
or edi, 2
imul edi, ebx
sub esi, edi
add esi, edx
mov edi, esi
xor edi, 0xe8
add esi, esi
and esi, 0x2c
sub edi, esi
and edi, 0xfe
and edx, 1
sub edx, edi
mov byte [esp + ecx + 0x110], dl
mov edx, ecx
not edx
or edx, 1
add edx, ecx
inc edx
mov esi, edx
and esi, 2
mov edi, edx
or edx, 2
imul edx, esi
xor esi, 2
and edi, 0xfffffffd
imul edi, esi
add edx, edi
mov esi, edx
and esi, ecx
xor edx, ecx
xor edx, 1
lea ecx, [edx + esi*2]
cmp ecx, 6
jb 0x40dfe0
mov ecx, dword [esp + 0x110]
mov dword [esp + 0x10], 0x3f9739a3
mov dword [esp + 0x14], 0x238a3dae
mov dword [esp + 0x18], 0x27b221b4
mov dword [esp + 0x1c], 0x2b7825b4
mov dword [esp + 0x20], 0x2f82298c
mov dword [esp + 0x24], 0x13122d80
mov word [esp + 0x28], 0
mov byte [esp + 0x2a], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edx + 0x10]
mov edi, edx
and edi, 0x16
xor edi, 0x595d43f6
mov ebx, edx
and ebx, 9
sub ebx, edi
xor ebx, esi
neg ebx
lea esi, [ebx + ebx]
and esi, 0x66
xor ebx, 0xcc
sub ebx, esi
add bl, 0x28
mov byte [esp + edx + 0x10], bl
inc edx
cmp edx, 0x1b
jne case.default.0x40e133
lea esi, [esp + 0x10]
push ecx
push 0
push esi
call eax
mov ecx, 0x447b14
push eax
call fcn.004389c0
movzx eax, al
mov eax, dword [eax*4 + 0x442ac0]
mov ecx, 0x8346c84d
xor ecx, dword [0x442ac8]
add eax, ecx
inc eax
jmp eax
mov dword [esp + 0xf4], 0x8b589544
mov dword [esp + 0xf8], 0x8fae8958
mov dword [esp + 0xfc], 0x83638d7b
mov dword [esp + 0x100], 0x8767811a
mov dword [esp + 0x104], 0xbb238512
mov dword [esp + 0x108], 0xbf6bb96b
mov dword [esp + 0x10c], 0xb379bd6b
add byte [ebx - 0x43], ch
jns 0x40fa00
add byte [ebx - 0x43], ch
jns 0x40fa00
mov dword [esp + 0x110], 0xb761b162
mov dword [esp + 0x114], 0xabaab57e
mov eax, dword [0x447b1c]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x38]
mov ebx, ecx
and ebx, 0x90
mov esi, ecx
and esi, 2
mov ebp, esi
xor ebp, 2
imul ebp, ebx
or ebx, 2
imul ebx, esi
mov esi, ecx
xor esi, 0x4d180a92
add esi, ebp
add esi, ebx
xor esi, edx
lea edx, [esi + 0x7e87cb25]
mov ebx, 0x817834da
sub ebx, esi
or ebx, 1
add ebx, esi
add ebx, 0x7e87cb26
mov ebp, edx
and ebp, 0xfffffffe
xor edx, 1
add edx, esi
add edx, 0x7e87cb25
sub edx, ebp
mov esi, edx
and esi, ebx
xor edx, ebx
lea edx, [edx + esi*2]
mov byte [esp + ecx + 0x38], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 0xe0
jb case.default.0x40fb19
lea ecx, [esp + 0x38]
push 0
push 0
push 0
push 0
push ecx
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
mov ecx, 0x3c0e289f
xor ecx, dword [0x442e8c]
mov eax, dword [eax*4 + 0x442e84]
add eax, ecx
inc eax
xor ebx, ebx
xor ebp, ebp
jmp eax
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x104]
add ecx, 8
cmp ecx, dword [esp + 0x100]
je 0x41b0fa
mov dword [esp + 8], edx
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
mov dword [esp + 0x104], ecx
mov eax, dword [ecx + 4]
mov dword [esp + 0xc], eax
push 0x1b0
push 0
lea eax, [esp + 0x15c]
push eax
call fcn.0040c900
add esp, 0xc
xor eax, eax
jmp 0x41a4dd
mov eax, dword [esp]
inc eax
cmp eax, 0xb
je 0x41a720
mov dword [esp], eax
mov ecx, edi
push 0
push 0
push dword [esp + 0x54]
lea eax, [esp + 0x160]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x44]
call fcn.00437ce0
test eax, eax
js 0x41a4d0
cmp byte [esp + 0x224], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x225], 0
mov byte [esp + 0x10], cl
sete al
xor al, 0x31
mov byte [esp + 0x11], al
cmp byte [esp + 0x226], 0
sete al
xor al, 0x31
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x34]
cmp byte [esp + eax + 0x154], 0
sete al
xor al, 0x31
mov byte [esp + 0x13], al
mov word [esp + 0x14], 0xa
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + eax], cl
movzx ecx, byte [esp + eax + 0x11]
inc eax
test cl, cl
jne 0x41a560
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x226]
test cl, cl
jne 0x41a710
cmp byte [esp + 0x224], 0
jne 0x41a59f
mov edx, dword [esp + 0x194]
or edx, dword [esp + 0x198]
je 0x41a710
mov edx, dword [esp + 0x34]
cmp byte [esp + edx + 0x154], 0
jne 0x41a5c4
mov edx, dword [esp + 0x194]
xor edx, 1
or edx, dword [esp + 0x198]
je 0x41a710
add esi, eax
mov dword [esp + 4], esi
mov dword [esp + 0x68], 0xfadb4a5
mov byte [esp + 0x6c], 0x18
lea eax, [esp + 0x6d]
mov word [eax + 4], 0
mov dword [eax], 0
mov ebx, 0x5b76fd03
mov ecx, 0x248902fc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
and eax, 0x208100cf
mov edx, ebx
and edx, 0x10309010
or edx, eax
lea esi, [ecx - 0x80000000]
mov edi, esi
and edi, 0x12
mov eax, ebx
and eax, 0x12402d0d
or eax, edi
movzx edi, byte [esp + ebx - 0x5b76fc9b]
xor edx, 0x94389230
or edx, edi
xor eax, 0x1000000d
or eax, esi
lea esi, [edi + edi]
not esi
add esi, edi
not eax
or eax, esi
and eax, edx
lea edx, [eax + eax]
not edx
add edx, eax
add dl, 0xd9
mov byte [esp + ebx - 0x5b76fc9b], dl
inc ebx
dec ecx
cmp ebx, 0x5b76fd0e
jne 0x41a600
movzx eax, byte [esp + 0x68]
test al, al
je 0x41a690
lea ecx, [esp + 0x69]
mov esi, dword [esp + 4]
xor ebx, ebx
lea edi, [esp + 0x38]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41a680
jmp 0x41a69a
mov esi, dword [esp + 4]
xor ebx, ebx
lea edi, [esp + 0x38]
mov byte [esi], 0
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x68], 0xff676980
mov eax, dword [0x448e64]
test eax, eax
je 0x41a4d0
xor ecx, ecx
mov edx, dword [0x448e68]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x3568c09b
je 0x41a6e3
inc ecx
cmp eax, ecx
jne 0x41a6d0
jmp 0x41a4d0
mov eax, dword [edx + ecx*8 + 4]
cmp eax, 0x54554ad5
je 0x41a4d0
lea ecx, [esp + 0x68]
push ecx
push 0
push 1
push eax
push dword [0x448e6c]
call fcn.0043a3b0
add esp, 0x14
jmp 0x41a4d0
sar ebp, 0xff
invalid
sar ebp, 0xff
call dword [eax - 0x367b39ff]
add esi, eax
test cl, cl
jne 0x41a730
jmp 0x41a480
movzx ecx, byte [esp + 0x226]
test cl, cl
je 0x41a480
call fcn.00404bc0
mov dword [esp + 0x30], eax
push eax
call fcn.004047f0
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x68], 0x3fd1d5db
mov byte [esp + 0x6c], 0x48
lea eax, [esp + 0x6d]
mov word [eax + 4], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
and edx, 0xd
xor edx, 0x8d
mov ecx, eax
and ecx, 2
sub ecx, edx
xor cl, byte [esp + eax + 0x68]
add cl, 0xc1
mov byte [esp + eax + 0x68], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0xb
jb 0x41a770
movzx eax, byte [esp + 0x68]
test al, al
lea ebx, [esp + 0x68]
je 0x41a7bb
lea ecx, [esp + 0x69]
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41a7b0
mov byte [esi], 0
mov eax, dword [esp + 0x18c]
mov edx, dword [esp + 0x190]
mov ecx, eax
or ecx, edx
je 0x41a810
mov ecx, edi
push 0
push 0
push 0x40
push ebx
push edx
push eax
call fcn.00437ce0
test eax, eax
js 0x41a81b
xor eax, eax
movzx ecx, word [esp + 0x2c]
cmp word [esp + 0x2e], cx
sete al
mov ecx, edi
mov edx, ebx
push eax
push dword [esp + 0x10]
call fcn.0041cc50
add esp, 8
jmp 0x41a81d
mov edi, esi
mov dword [esp], 0
jmp 0x41a822
xor eax, eax
mov dword [esp], eax
mov edi, esi
mov dword [esp + 0x68], 0x9f38303b
mov byte [esp + 0x6c], 0x88
mov dword [esp + 0x6d], 0
mov eax, 0x2f67dc
mov ecx, ebx
nop
nop
movzx ebx, byte [ecx]
lea edx, [ebx + ebx]
not edx
add edx, ebx
and edx, 0xad58e4e6
and ebx, 0x19
or ebx, edx
lea esi, [eax - 0x5ec00000]
and esi, 0xa14864c6
mov edx, eax
and edx, 0x270319
or edx, esi
xor edx, ebx
mov esi, edx
xor esi, 0x52a71b19
mov ebx, esi
and ebx, 0x50
xor edx, 0x49
add edx, esi
and esi, 0xaf
sub edx, esi
add edx, ebx
inc dl
mov byte [ecx], dl
inc ecx
dec eax
cmp eax, 0x2f67d3
jne 0x41a840
movzx eax, byte [esp + 0x68]
test al, al
je 0x41a8c0
lea ecx, [esp + 0x69]
mov esi, edi
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41a8b0
jmp 0x41a8c4
mov esi, edi
xor ebx, ebx
mov byte [esi], 0
push dword [esp + 0xc]
call fcn.004049c0
add esp, 4
test eax, eax
setne cl
mov edx, dword [esp]
and cl, dl
cmp cl, 1
lea edi, [esp + 0x38]
jne 0x41aa70
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2ac]
mov edx, dword [esp + 0x2b0]
lea ecx, [eax + eax]
and ecx, 0x50
xor eax, 0x28
add eax, ecx
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.00437ce0
test eax, eax
mov dword [esp + 4], esi
js 0x41acb0
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x114]
push ebx
push edx
push eax
call fcn.00437ce0
test eax, eax
js 0x41acb0
mov eax, dword [esp + 0x10c]
mov edx, dword [esp + 0x108]
add edx, dword [esp + 0x48]
adc eax, 0
mov ecx, edi
push 0
push 0
push 0x18
lea edi, [esp + 0x134]
push edi
push eax
push edx
call fcn.00437ce0
test eax, eax
js 0x41acb0
cmp byte [esp + 0x13f], 0
lea edi, [esp + 0x128]
js 0x41aa78
mov dword [esp + 0x10], 0xd769c915
mov dword [esp + 0x14], 0xd36cd579
mov dword [esp + 0x18], 0xdf12d130
mov dword [esp + 0x1c], 0xdb66dd7d
mov dword [esp + 0x20], 0xa702d979
mov word [esp + 0x24], 0xa5a4
lea eax, [esp + 0x26]
mov word [eax + 4], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xb4
xor cl, byte [esp + eax + 0x10]
add cl, 0x4a
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0x1c
jne 0x41a9f0
movzx ebx, word [esp + 0x10]
test bx, bx
mov dword [esp + 0xf8], edi
je 0x41aad7
lea eax, [esp + 0x10]
mov edx, edi
mov dword [esp], edi
jmp 0x41aa3c
movzx ebx, word [eax]
test bx, bx
je 0x41aae4
movzx edi, word [edx]
test di, di
je 0x41aadb
add edx, 2
add eax, 2
mov ecx, dword [esp]
add ecx, 2
cmp di, bx
je 0x41aa5e
mov dword [esp], ecx
mov edx, ecx
je 0x41aa30
lea eax, [esp + 0x10]
jmp 0x41aa30
mov dword [esp], edx
jmp 0x41aff4
mov ebx, dword [esp + 0x128]
mov edi, dword [esp + 0x12c]
mov eax, ebx
or eax, edi
je 0x41acb0
mov eax, dword [esp + 0x130]
lea ecx, [eax*2 + 2]
inc eax
mov dword [esp], ecx
mov eax, ecx
jns 0x41aaab
mov eax, 0xffffffff
push eax
call fcn.0040c880
add esp, 4
lea ecx, [esp + 0x38]
push 0
push 0
push dword [esp + 8]
push eax
push edi
mov edi, eax
push ebx
call fcn.00437ce0
test eax, eax
jns 0x41a9a9
jmp 0x41acb0
mov edx, edi
jmp 0x41aaf3
lea ebx, [esp + 0x68]
jmp 0x41ac8b
lea ebx, [esp + 0x68]
mov edx, dword [esp]
test edx, edx
je 0x41ac8b
movzx edi, word [edx + 0x14]
lea ebx, [esp + 0x68]
test di, di
je 0x41ac8b
lea eax, [edx + 0x14]
xor ecx, ecx
lea ebx, [esp + 0x68]
nop
nop
nop
cmp di, 0x5c
je 0x41ab28
movzx edi, word [edx + ecx + 0x16]
add ecx, 2
test di, di
jne 0x41ab10
jmp 0x41ac8b
test ecx, ecx
je 0x41abd2
sar ecx, 1
mov edx, ecx
and edx, 3
je 0x41ab72
xor edi, edi
lea ebx, [esp + 0x68]
mov dword [esp], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [eax]
xor edx, edx
test si, si
setne dl
lea eax, [eax + edx*2]
mov edx, dword [esp]
mov word [ebx], si
add ebx, 2
inc edi
cmp edx, edi
jne 0x41ab50
mov esi, ecx
sub esi, edi
jmp 0x41ab78
lea ebx, [esp + 0x68]
mov esi, ecx
dec ecx
cmp ecx, 3
jb 0x41abd2
nop
nop
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [ebx], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov word [ebx + 6], dx
add ebx, 8
add esi, 0xfffffffc
jne 0x41ab80
mov word [ebx], 0
mov eax, dword [esp + 0x34]
cmp byte [esp + eax + 0x154], 0
je 0x41abee
mov esi, dword [esp + 4]
jmp 0x41ac8b
mov dword [esp + 0x10], 0x19cd1bfc
mov dword [esp + 0x14], 0xe54be7aa
mov dword [esp + 0x18], 0xe14be355
mov dword [esp + 0x1c], 0xed59ef52
mov dword [esp + 0x20], 0xe95beb50
mov word [esp + 0x24], 0xf7e8
lea eax, [esp + 0x26]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0x4764e67b
mov esi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x4764e66b]
xor ecx, eax
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 0x98
mov byte [esp + eax - 0x4764e66b], cl
inc eax
cmp eax, 0x4764e694
jne 0x41ac40
movzx eax, word [esp + 0x10]
test ax, ax
je 0x41ac86
lea ecx, [esp + 0x12]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41ac75
mov word [ebx], 0
cmp byte [esp + 0x13f], 0
jns 0x41aca4
push dword [esp + 0xf8]
call fcn.0040c890
add esp, 4
lea eax, [esp + 0x68]
cmp eax, ebx
jne 0x41ad36
mov dword [esp + 0x10], 0x63fc61d9
mov dword [esp + 0x14], 0x67f965c7
mov dword [esp + 0x18], 0x5bc459ff
mov dword [esp + 0x1c], 0x5fca5dc5
mov dword [esp + 0x20], 0x535251cf
mov eax, 0x8c542198
nop
nop
nop
movzx ecx, byte [esp + eax + 0x73abde78]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 8
mov byte [esp + eax + 0x73abde78], cl
inc eax
cmp eax, 0x8c5421ac
jne 0x41ace0
movzx eax, word [esp + 0x10]
lea ebx, [esp + 0x68]
test ax, ax
je 0x41ad31
lea ecx, [esp + 0x12]
lea ebx, [esp + 0x68]
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41ad20
mov word [ebx], 0
mov eax, ebx
not eax
lea edx, [esp + 0x68]
and eax, edx
and ebx, dword [esp + 0xfc]
sub ebx, eax
mov ecx, ebx
shr ecx, 2
mov eax, edx
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
lea edi, [esi + eax]
lea edx, [esp + eax]
add edx, 0x68
mov eax, ebx
not eax
or eax, 3
add eax, ebx
inc eax
mov ecx, eax
shr ecx, 1
mov esi, edx
mov dword [esp], edi
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test al, 1
je 0x41ad8f
and eax, 0xfffffffe
movzx ecx, byte [edx + eax]
mov edx, dword [esp]
mov byte [edx + eax], cl
push 0xa
push 0xb
lea eax, [esp + 0x130]
push eax
push dword [esp + 0x18]
call fcn.0041ca20
add esp, 0x10
mov dword [esp + 0x10], 0xad859b3e
mov dword [esp + 0x14], 0x3dc2d4c0
mov byte [esp + 0x18], 0
mov ecx, 0xd808d2c9
mov edi, dword [ebp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x27f72d47]
xor edx, ecx
mov esi, edx
and esi, 0x12
xor edx, 0x12
lea edx, [edx + esi*2]
add dl, 0xe7
mov byte [esp + ecx + 0x27f72d47], dl
inc ecx
cmp ecx, 0xd808d2d2
jne 0x41add0
mov esi, dword [esp + 4]
add esi, ebx
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x41ae1b
lea edx, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41ae10
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x41ae3b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x41ae30
mov byte [esi], 0xa
mov edi, dword [edi]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41ae50
sar eax, 1
sar ebx, 1
add ebx, eax
mov eax, ebx
and eax, 0xa
xor ebx, 0xa
lea eax, [ebx + eax*2]
test eax, eax
jns 0x41ae77
mov eax, 0xffffffff
jmp 0x41ae79
add eax, eax
push eax
call fcn.0040c880
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x41aeb1
add edi, 2
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41aea0
mov dword [esp + 0xc], eax
inc esi
mov dword [esp + 4], esi
mov eax, edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0x1d00735
mov dword [esp + 0x14], 0xdfb03ef
mov dword [esp + 0x18], 0x9f20f3a
mov dword [esp + 0x1c], 0x15f60bf0
mov word [esp + 0x20], 0x1714
lea ecx, [esp + 0x26]
mov byte [ecx], 0
mov dword [ecx - 4], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edx + 0x10]
mov ebx, ecx
and ebx, 2
mov edi, edx
xor edi, 0xa504fc1
add edi, ebx
xor edi, esi
mov ebx, edi
and ebx, 1
mov esi, 1
sub esi, edi
and esi, 1
or edi, 1
sub esi, edi
add esi, 0xc5
xor esi, 0xfe
lea ebx, [esi + ebx*2]
mov byte [esp + edx + 0x10], bl
inc edx
add ecx, 2
cmp edx, 0x17
jne 0x41af00
add eax, 2
movzx ecx, word [esp + 0x68]
test cx, cx
je 0x41af71
lea edx, [esp + 0x6a]
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 0x41af60
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x41afa3
lea edx, [esp + 0x12]
mov esi, dword [esp + 4]
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 0x41af90
jmp 0x41afa7
mov esi, dword [esp + 4]
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0x30]
call fcn.00405790
add esp, 4
mov edi, eax
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x41afc0
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0x14]
push ebx
call fcn.0040d070
mov dword [esp], eax
push edi
call fcn.00405820
add esp, 4
push ebx
call fcn.0040c890
add esp, 4
xor ebx, ebx
lea edi, [esp + 0x38]
push dword [esp + 0x30]
call fcn.00404a00
add esp, 4
mov edx, dword [esp + 8]
and dl, 1
or dl, byte [esp]
jmp 0x41a484
mov edi, edx
lea ecx, [esp + 0x38]
call fcn.004373b0
mov dword [esp + 0x154], 0x27beb3cf
mov byte [esp + 0x158], 0x28
mov dword [esp + 0x159], 0
mov word [esp + 0x15d], 0
nop
nop
nop
nop
nop
nop
mov eax, ebx
and eax, 5
mov ecx, ebx
and ecx, 2
mov edx, ecx
xor edx, 2
imul edx, eax
or eax, 2
imul eax, ecx
mov ecx, ebx
xor ecx, 0xf7
add ecx, edx
add ecx, eax
xor cl, byte [esp + ebx + 0x154]
add cl, 0x2d
mov byte [esp + ebx + 0x154], cl
mov eax, ebx
and eax, 1
xor ebx, 1
lea ebx, [ebx + eax*2]
cmp ebx, 0xb
jb 0x41b050
movzx eax, byte [esp + 0x154]
test al, al
je 0x41b0bd
lea ecx, [esp + 0x155]
mov edx, edi
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b0b0
jmp 0x41b0bf
mov edx, edi
mov byte [esi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x54]
and dl, 1
test eax, eax
je 0x41b017
cmp eax, dword [esp + 0x58]
je 0x41b017
push eax
mov edi, edx
call fcn.0040c890
mov edx, edi
add esp, 4
mov dword [esp + 0x54], 0
jmp 0x41b017