Function at 0x41a360
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x308
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x154], 0xe11a0b05
mov byte [esp + 0x158], 0x94
mov dword [esp + 0x159], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x154]
mov esi, ecx
and esi, 4
mov ebx, ecx
and ebx, 2
mov edi, ebx
xor edi, 2
imul edi, esi
or esi, 2
imul esi, ebx
mov ebx, ecx
xor ebx, 0xc2e1d626
add ebx, edi
add ebx, esi
mov esi, ebx
and esi, edx
add ebx, edx
add esi, esi
sub ebx, esi
add bl, 0x42
mov byte [esp + ecx + 0x154], bl
inc ecx
cmp ecx, 9
jne 0x41a3b0
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x154]
test cl, cl
je 0x41a41b
lea edx, [esp + 0x155]
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41a410
mov byte [esi], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
lea ecx, [esp + 0x50]
lea edx, [esp + 0x60]
lea ebx, [esp + 0x34]
push ecx
push edx
push ebx
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.0041c920
add esp, 0x18
test al, al
je 0x41a970
mov dword [esp + 0x154], 0xfb7a5ac
mov byte [esp + 0x158], 0x18
mov dword [esp + 0x159], 0
mov byte [esp + 0x15d], 0
xor eax, eax
nop
mov ecx, eax
add cl, 0xbb
xor cl, byte [esp + eax + 0x154]
add cl, 0x59
mov byte [esp + eax + 0x154], cl
inc eax
cmp eax, 0xa
jne 0x41a490
movzx eax, byte [esp + 0x154]
test al, al
je 0x41a4cb
lea ecx, [esp + 0x155]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41a4c0
mov byte [esi], 0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x144], ecx
mov dword [esp + 0x140], eax
mov dword [esp + 0x148], edx
mov dword [esp + 0x154], 0xaa96a67b
mov dword [esp + 0x158], 0x9b9ab98c
mov dword [esp + 0x15c], 0x796992bf
mov dword [esp + 0x160], 0x6c6f6e61
mov dword [esp + 0x164], 0x9a9177bc
mov dword [esp + 0x168], 0x5ba2a88e
mov dword [esp + 0x16c], 0x50535255
mov dword [esp + 0x170], 0x50478b86
mov dword [esp + 0x174], 0xb2ad82a9
mov dword [esp + 0x178], 0x9c9cbe51
mov dword [esp + 0x17c], 0xa65fa848
mov dword [esp + 0x180], 0x51bcb79a
mov dword [esp + 0x184], 0x50a6925c
mov dword [esp + 0x188], 0xe8eb2a52
mov dword [esp + 0x18c], 0xe93f2aed
mov dword [esp + 0x190], 0x3c3f3e31
mov dword [esp + 0x194], 0xead5d7e9
mov dword [esp + 0x198], 0x243bc037
mov dword [esp + 0x19c], 0x2029cfd4
mov dword [esp + 0x1a0], 0x372f2e21
mov dword [esp + 0x1a4], 0x282b2ada
mov dword [esp + 0x1a8], 0xd2e90e29
mov dword [esp + 0x1ac], 0xd02ee0e
mov dword [esp + 0x1b0], 0xe30eefe2
mov dword [esp + 0x1b4], 0x181b1a1d
mov dword [esp + 0x1b8], 0xea161ecd
mov dword [esp + 0x1bc], 0xd70dd205
mov dword [esp + 0x1c0], 0xc13e019
mov dword [esp + 0x1c4], 0x80b0a0d
mov dword [esp + 0x1c8], 0xf7f609
mov dword [esp + 0x1cc], 0xfe212ee9
mov dword [esp + 0x1d0], 0xfcfffef1
mov dword [esp + 0x1d4], 0x1507142f
mov dword [esp + 0x1d8], 0xf932faf9
mov byte [esp + 0x1dc], 0xa4
mov word [esp + 0x1e1], 0
mov dword [esp + 0x1dd], 0
mov eax, 0x9f18e10b
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x60e72049]
xor ecx, eax
mov edx, ecx
and edx, 0x48
xor ecx, 0xc8
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax + 0x60e72049], cl
inc eax
cmp eax, 0x9f18e19a
jne 0x41a690
mov dword [esp + 0x80], 0xb08a9e9e
mov dword [esp + 0x84], 0x57f538
mov dword [esp + 0x88], 0x331c5090
mov dword [esp + 0x8c], 0x27262524
mov dword [esp + 0x90], 0xdbae265d
mov dword [esp + 0x94], 0x70f64a4
mov dword [esp + 0x98], 0x1b1a1918
mov dword [esp + 0x9c], 0xaf066cac
mov dword [esp + 0xa0], 0xb4ca2d93
mov dword [esp + 0xa4], 0x3b3a4eaa
mov dword [esp + 0xa8], 0x3f3e3d3c
mov dword [esp + 0xac], 0x33323130
mov dword [esp + 0xb0], 0x80baaeae
mov dword [esp + 0xb4], 0x864635e8
mov dword [esp + 0xb8], 0x68141ce
mov dword [esp + 0xbc], 0xf7f6f5f4
mov dword [esp + 0xc0], 0x4bd22048
mov dword [esp + 0xc4], 0xef325195
mov dword [esp + 0xc8], 0xeb639c50
mov dword [esp + 0xcc], 0x3fe6e5e4
mov dword [esp + 0xd0], 0xe3e2e1f8
mov dword [esp + 0xd4], 0x61a565dc
mov dword [esp + 0xd8], 0x6da16138
mov dword [esp + 0xdc], 0xb9ad6d0c
mov dword [esp + 0xe0], 0xd3d2d1d0
mov dword [esp + 0xe4], 0x1372b878
mov dword [esp + 0xe8], 0x3bb370c8
mov dword [esp + 0xec], 0xc7b8fa7c
mov dword [esp + 0xf0], 0xc3c2c1c0
mov dword [esp + 0xf4], 0x7bebdbc
mov dword [esp + 0xf8], 0x56bdb3c1
mov dword [esp + 0xfc], 0xb7b6b5b4
mov dword [esp + 0x100], 0x6f06ca08
mov dword [esp + 0x104], 0x8e7f15ac
mov byte [esp + 0x108], 0xa8
mov dword [esp + 0x109], 0
mov eax, 0xbbca594c
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x4435a734]
xor ecx, eax
mov edx, ecx
not edx
or edx, 0x550c4183
add edx, ecx
or ecx, 0x550c4183
lea edi, [edx + ecx]
add ecx, edx
inc ecx
mov edx, ecx
not edx
or edx, 1
add edx, edi
inc edx
or ecx, 1
add ecx, edx
inc cl
mov byte [esp + eax + 0x4435a734], cl
inc eax
cmp eax, 0xbbca59d9
jne 0x41a850
lea eax, [esp + 0x154]
lea edx, [esp + 0x80]
lea ecx, [esp + 0x140]
push eax
push 0x88
push edx
push ebx
call fcn.00439d20
mov dword [esp + 0x13c], edx
mov dword [esp + 0x138], eax
or eax, edx
je 0x41a970
mov dword [esp + 0x154], 0x3b94ab98
mov byte [esp + 0x158], 0x20
mov dword [esp + 0x159], 0
mov dword [esp + 0x15c], 0
mov eax, 0xfcbbce09
mov ecx, 0xf6
nop
nop
nop
movzx edi, byte [esp + eax + 0x344334b]
lea edx, [edi + edi]
not edx
add edx, edi
mov ebx, edi
not ebx
or edx, ebx
and edx, eax
not edx
or ebx, ecx
add ebx, edi
mov edi, 0x3fffffe
sub edi, ebx
and edi, edx
mov edx, edi
not edx
or edx, 0xd2
or edi, 0x2d
sub edx, edi
mov byte [esp + eax + 0x344334b], dl
inc eax
dec ecx
cmp eax, 0xfcbbce15
jne 0x41a900
movzx eax, byte [esp + 0x154]
test al, al
je 0x41a9fd
lea ecx, [esp + 0x155]
lea edx, [esp + 0x34]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41a960
jmp 0x41aa01
xor ebx, ebx
lea ecx, [esp + 0x34]
call fcn.00438700
mov dword [esp + 0x154], 0xb7a7f6b
mov dword [esp + 0x158], 0
mov word [esp + 0x15c], 0
xor edx, edx
nop
nop
nop
lea eax, [edx + 1]
movzx ecx, byte [esp + edx + 0x154]
xor cl, al
add cl, 0xfb
mov byte [esp + edx + 0x154], cl
mov edx, eax
cmp eax, 0xa
jne 0x41a9a0
movzx eax, byte [esp + 0x154]
test al, al
je 0x41a9eb
lea ecx, [esp + 0x155]
nop
nop
nop
nop
nop
nop
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 0x41a9e0
mov byte [esi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea edx, [esp + 0x34]
mov byte [esi], 0
lea eax, [esp + 0x138]
lea ecx, [esp + 0x140]
push 0
push 8
push eax
push edx
call fcn.00439d20
mov dword [esp + 0x134], edx
mov dword [esp + 0x130], eax
xor ebx, ebx
or eax, edx
je 0x41a972
mov dword [esp + 0x154], 0x89242432
mov byte [esp + 0x158], 0x84
mov dword [esp + 0x159], 0
mov word [esp + 0x15d], 0
mov eax, 0xdf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx + 0x154]
mov edi, ebx
and edi, 2
mov edx, eax
and edx, 0xcd
or edx, edi
xor edx, 0xed
and edx, ecx
or ecx, ebx
or ecx, 0x20
xor ecx, edx
add cl, 0x60
mov byte [esp + ebx + 0x154], cl
inc ebx
dec eax
cmp ebx, 0xb
jne 0x41aa70
movzx eax, byte [esp + 0x154]
test al, al
je 0x41aacb
lea ecx, [esp + 0x155]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41aac0
mov byte [esi], 0
lea eax, [esp + 0x130]
lea edx, [esp + 0x54]
lea ecx, [esp + 0x34]
push 0
push 8
push eax
push edx
call fcn.00439140
mov eax, dword [esp + 0x54]
xor ebx, ebx
cmp eax, dword [esp + 0x58]
je 0x41a972
mov dword [esp + 0x154], 0x69ff6bf7
mov dword [esp + 0x158], 0x6dca6fc3
mov dword [esp + 0x15c], 0x51f953c5
mov dword [esp + 0x160], 0x55fd5782
mov dword [esp + 0x164], 0x59f15bcc
mov word [esp + 0x168], 0x5f58
mov dword [esp + 0x16a], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0x17
xor al, byte [esp + ebx + 0x154]
add al, 0x8d
mov byte [esp + ebx + 0x154], al
inc ebx
cmp ebx, 0x1a
jne 0x41ab50
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [eax + ecx]
movzx edi, word [esp + ecx + 0x154]
test dx, dx
je 0x41ab99
add ecx, 2
cmp dx, di
je 0x41ab80
mov word [esp + 0x28], di
mov word [esp + 0x2a], dx
mov dword [esp + 0x154], 0x7e6e7a3
mov byte [esp + 0x158], pe_nt_image_headers32
mov dword [esp + 0x159], 0
mov dword [esp + 0x15c], 0
mov eax, 0xbf
mov ecx, 0x40
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax + 0x95]
mov edx, eax
xor edx, ecx
and edx, edi
xor edx, ecx
mov bl, 0x44
sub bl, dl
mov byte [esp + eax + 0x95], bl
inc eax
dec ecx
cmp eax, 0xcb
jne 0x41abe0
movzx eax, byte [esp + 0x154]
test al, al
je 0x41ac2b
lea ecx, [esp + 0x155]
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 0x41ac20
mov byte [esi], 0
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x118], eax
xor ebx, ebx
cmp ecx, eax
je 0x41a972
mov dword [esp + 0x30], 0x1a8
movzx eax, word [esp + 0x28]
cmp word [esp + 0x2a], ax
je 0x41ac79
mov dword [esp + 0x30], 0x190
mov dword [esp + 0x4c], 0x1b0
jne 0x41ac83
mov dword [esp + 0x44], 0x20
je 0x41acbb
jmp 0x41ac95
mov dword [esp + 0x4c], 0x1b0
je 0x41ac6d
mov dword [esp + 0x4c], 0x198
mov dword [esp + 0x44], 0x20
je 0x41acbb
mov dword [esp + 0x44], 0x10
jmp 0x41acbb
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x11c]
add ecx, 8
cmp ecx, dword [esp + 0x118]
je 0x41b810
mov dword [esp + 0x48], ebx
mov eax, dword [ecx]
mov dword [esp], eax
mov dword [esp + 0x11c], ecx
mov eax, dword [ecx + 4]
mov dword [esp + 0x2c], eax
push 0x1b0
push 0
lea eax, [esp + 0x15c]
push eax
call fcn.0040ce10
add esp, 0xc
xor edi, edi
lea ebx, [esp + 0x34]
jmp 0x41ad0e
lea ebx, [esp + 0x34]
inc edi
cmp edi, 0xb
je 0x41af10
mov ecx, ebx
push 0
push 0
push dword [esp + 0x54]
lea eax, [esp + 0x160]
push eax
push dword [esp + 0x3c]
push dword [esp + 0x14]
call fcn.00438fc0
test eax, eax
js 0x41ad04
cmp byte [esp + 0x224], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x225], 0
mov byte [esp + 0x68], cl
sete al
xor al, 0x31
mov byte [esp + 0x69], al
cmp byte [esp + 0x226], 0
sete al
xor al, 0x31
mov byte [esp + 0x6a], al
mov eax, dword [esp + 0x30]
cmp byte [esp + eax + 0x154], 0
sete al
xor al, 0x31
mov byte [esp + 0x6b], al
mov word [esp + 0x6c], 0xa
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + eax], cl
movzx ecx, byte [esp + eax + 0x69]
inc eax
test cl, cl
jne 0x41ad90
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x226]
test cl, cl
jne 0x41af30
cmp byte [esp + 0x224], 0
jne 0x41adcf
mov edx, dword [esp + 0x194]
or edx, dword [esp + 0x198]
je 0x41af30
add esi, eax
mov dword [esp + 0x80], 0x8b2d243d
mov byte [esp + 0x84], 0x80
lea eax, [esp + 0x85]
mov dword [eax + 3], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xa1
xor cl, byte [esp + eax + 0x80]
add cl, 0xdb
mov byte [esp + eax + 0x80], cl
inc eax
cmp eax, 0xc
jne 0x41ae00
movzx eax, byte [esp + 0x80]
test al, al
je 0x41ae3b
lea ecx, [esp + 0x81]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ae30
mov byte [esi], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0xff676980
mov dword [esp + 0x80], 0x787b7a05
mov word [esp + 0x84], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x80]
mov ecx, eax
xor ecx, 0xbfc60a3f
lea ecx, [ecx + eax*2]
xor ecx, edx
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, edx
add cl, 0xc4
mov byte [esp + eax + 0x80], cl
add eax, 0x92c57087
mov ecx, eax
and ecx, 0xa
xor eax, 0x6d3a8f7a
lea eax, [eax + ecx*2]
cmp eax, 6
jb 0x41ae70
mov eax, dword [0x44b030]
test eax, eax
je 0x41ad00
mov ecx, dword [esp + 0x80]
xor edx, edx
mov ebx, dword [0x44b034]
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x3568c09b
je 0x41aee3
inc edx
cmp eax, edx
jne 0x41aed0
jmp 0x41ad00
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x41ad00
lea ecx, [esp + 8]
push ecx
push 0
push 1
push eax
push dword [0x44b038]
call fcn.0043b600
add esp, 0x14
jmp 0x41ad00
movzx ecx, byte [esp + 0x226]
test cl, cl
jne 0x41af3a
jmp 0x41aca0
add esi, eax
test cl, cl
je 0x41aca0
call fcn.00405070
mov dword [esp + 0x2c], eax
push eax
call fcn.00404a30
add esp, 4
mov edi, eax
mov dword [esp + 0x80], 0x15ba7a1
mov byte [esp + 0x84], 0xf4
lea eax, [esp + 0x85]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0xfe
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x7e]
lea ecx, [eax - 0x4a21ae00]
mov ebx, eax
and ebx, edx
or ecx, edx
xor ecx, ebx
mov edx, ecx
or edx, 9
add edx, ecx
not ecx
or ecx, 9
add edx, ecx
add dl, 2
mov byte [esp + eax - 0x7e], dl
inc eax
cmp eax, 0x108
jne 0x41af80
movzx eax, byte [esp + 0x80]
test al, al
mov dword [esp + 4], edi
je 0x41afe0
lea edx, [esp + 0x81]
lea ecx, [esp + 0x34]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x41afd0
jmp 0x41afe4
lea ecx, [esp + 0x34]
mov byte [esi], 0
mov eax, dword [esp + 0x18c]
mov edx, dword [esp + 0x190]
mov edi, eax
or edi, edx
je 0x41b040
push 0
push 0
push 0x40
mov edi, ecx
lea ebx, [esp + 0x8c]
push ebx
push edx
push eax
call fcn.00438fc0
test eax, eax
js 0x41b04d
xor eax, eax
movzx ecx, word [esp + 0x28]
cmp word [esp + 0x2a], cx
sete al
mov ecx, edi
mov edx, ebx
push eax
mov edi, dword [esp + 8]
push edi
call fcn.0041d480
add esp, 8
jmp 0x41b053
mov dword [esp], 0
mov edi, dword [esp + 4]
jmp 0x41b056
xor eax, eax
mov edi, dword [esp + 4]
mov dword [esp], eax
mov dword [esp + 0x80], 0x8728201b
mov byte [esp + 0x84], 0xb8
mov dword [esp + 0x85], 0
mov eax, 0xd8e91c1f
mov ecx, 0xe0
nop
nop
movzx ebx, byte [esp + eax + 0x2716e461]
mov edx, ecx
xor edx, eax
and edx, ebx
xor edx, eax
mov ebx, edx
and ebx, 1
or edx, 1
add edx, ebx
add dl, 0x64
mov byte [esp + eax + 0x2716e461], dl
inc eax
dec ecx
cmp eax, 0xd8e91c28
jne 0x41b080
movzx eax, byte [esp + 0x80]
test al, al
je 0x41b0e0
lea ecx, [esp + 0x81]
lea ebx, [esp + 0x34]
nop
nop
nop
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 0x41b0d0
jmp 0x41b0e4
lea ebx, [esp + 0x34]
mov byte [esi], 0
push edi
call fcn.00404e70
add esp, 4
test eax, eax
setne cl
mov edx, dword [esp]
and cl, dl
cmp cl, 1
jne 0x41b280
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2ac]
mov edx, dword [esp + 0x2b0]
add eax, 0x28
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x134]
push edi
push edx
push eax
call fcn.00438fc0
test eax, eax
js 0x41b3d0
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x12c]
add eax, 0x10
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x12c]
push edi
push edx
push eax
call fcn.00438fc0
test eax, eax
js 0x41b3d0
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x120]
add edx, dword [esp + 0x44]
adc eax, 0
mov ecx, ebx
push 0
push 0
push 0x18
lea edi, [esp + 0x74]
push edi
push eax
push edx
call fcn.00438fc0
test eax, eax
js 0x41b3d0
cmp byte [esp + 0x7f], 0
lea ebx, [esp + 0x68]
js 0x41b288
mov dword [esp + 8], 0x73c171ad
mov dword [esp + 0xc], 0x7fcc7dd1
mov dword [esp + 0x10], 0x7bb67998
mov dword [esp + 0x14], 0x47fa45e5
mov dword [esp + 0x18], 0x43e641e1
mov word [esp + 0x1c], 0x4d4c
lea eax, [esp + 0x1e]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
mov edx, eax
and edx, 0x28
mov edi, ecx
xor edi, edx
and edx, ecx
xor edi, 0x94
lea edx, [edi + edx*2]
xor dl, byte [esp + ecx + 8]
add dl, 0x1c
mov byte [esp + ecx + 8], dl
inc ecx
add eax, 2
cmp ecx, 0x19
jne 0x41b1f0
movzx edi, word [esp + 8]
test di, di
mov dword [esp + 0x114], ebx
je 0x41b2b8
lea eax, [esp + 8]
mov edx, ebx
mov dword [esp], ebx
jmp 0x41b248
movzx edi, word [eax]
test di, di
je 0x41b2bc
movzx ebx, word [edx]
test bx, bx
je 0x41b2f3
add edx, 2
add eax, 2
mov ecx, dword [esp]
add ecx, 2
cmp bx, di
je 0x41b26a
mov dword [esp], ecx
mov edx, ecx
je 0x41b240
lea eax, [esp + 8]
jmp 0x41b240
mov dword [esp], edx
jmp 0x41b6de
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov eax, ecx
or eax, edx
je 0x41b3d0
mov edi, dword [esp + 0x70]
mov ebx, edi
inc ebx
mov dword [esp], ecx
mov dword [esp + 0x24], edx
jns 0x41b380
mov eax, 0xffffffff
jmp 0x41b387
mov eax, ebx
jmp 0x41b2ca
lea ebx, [esp + 0x80]
mov eax, dword [esp]
test eax, eax
je 0x41b2fa
movzx edi, word [eax + 0x14]
lea ebx, [esp + 0x80]
test di, di
je 0x41b2fa
lea edx, [eax + 0x14]
xor ecx, ecx
nop
cmp di, 0x5c
je 0x41b324
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x41b2e0
lea ebx, [esp + 0x80]
cmp byte [esp + 0x7f], 0
jns 0x41b310
push dword [esp + 0x114]
call fcn.0040cc90
add esp, 4
lea edi, [esp + 0x80]
cmp edi, ebx
jne 0x41b466
jmp 0x41b3d7
lea eax, [esp + 0x80]
mov ebx, eax
test ecx, ecx
je 0x41b762
sar ecx, 1
mov edi, ecx
mov ebx, eax
and edi, 3
je 0x41b6f9
mov dword [esp + 0x24], edi
xor edi, edi
nop
nop
nop
nop
nop
nop
movzx eax, word [edx]
mov word [esp], ax
xor eax, eax
cmp word [esp], 0
setne al
lea edx, [edx + eax*2]
movzx eax, word [esp]
mov word [ebx], ax
add ebx, 2
inc edi
cmp dword [esp + 0x24], edi
jne 0x41b350
mov eax, ecx
sub eax, edi
mov edi, eax
jmp 0x41b6fb
lea eax, [edi*2 + 2]
push eax
call fcn.0040cc80
add esp, 4
mov edx, 2
sub edx, edi
and edx, 2
mov ecx, ebx
and ecx, 0xfffffffd
imul ecx, edx
mov edx, ebx
and edx, 2
or ebx, 2
imul ebx, edx
add ebx, ecx
lea ecx, [esp + 0x34]
push 0
push 0
push ebx
mov ebx, eax
push eax
push dword [esp + 0x34]
push dword [esp + 0x14]
call fcn.00438fc0
test eax, eax
jns 0x41b1ad
lea edi, [esp + 0x80]
mov dword [esp + 8], 0x99689b4b
mov dword [esp + 0xc], 0xa557a775
mov dword [esp + 0x10], 0xa150a34d
mov dword [esp + 0x14], 0xad52af57
mov dword [esp + 0x18], 0xa9aaab5d
mov eax, 0xb73e9c5b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x48c163ad]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x39
mov byte [esp + eax + 0x48c163ad], cl
inc eax
cmp eax, 0xb73e9c6f
jne 0x41b410
movzx eax, word [esp + 8]
mov ebx, edi
test ax, ax
je 0x41b461
lea ecx, [esp + 0xa]
mov ebx, edi
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41b450
mov word [ebx], 0
mov edx, ebx
sub edx, edi
mov ecx, edx
shr ecx, 2
mov eax, edi
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, edx
not ecx
or ecx, 0xfffffffc
add ecx, edx
lea edi, [esi + ecx]
inc edi
lea eax, [esp + ecx]
add eax, 0x81
mov dword [esp], edx
mov ecx, edx
shr ecx, 1
and ecx, 1
mov edx, eax
mov dword [esp + 0x24], edi
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
test bl, 1
je 0x41b4b9
mov ecx, dword [esp]
and ecx, 2
movzx eax, byte [eax + ecx]
mov edx, dword [esp + 0x24]
mov byte [edx + ecx], al
push 0xa
push 0xb
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x10]
call fcn.0041d220
add esp, 0x10
mov dword [esp + 8], 0x7763650a
mov dword [esp + 0xc], 0x7262824
mov dword [esp + 0x10], 0
xor ecx, ecx
mov edi, 0xd08cc07f
nop
nop
nop
movzx ebx, byte [esp + ecx + 8]
lea edx, [ecx + 0x2f733f80]
and edx, ebx
add edx, edx
sub edx, ebx
add edx, edi
and edx, ecx
add dl, dl
sub bl, dl
movzx edx, bl
add edx, ecx
mov byte [esp + ecx + 8], dl
inc ecx
dec edi
cmp ecx, 0xc
jne 0x41b4f0
mov ebx, dword [esp]
add esi, ebx
movzx ecx, byte [esp + 8]
test cl, cl
je 0x41b53b
lea edx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41b530
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x41b55b
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 0x41b550
mov byte [esi], 0xa
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41b570
sar eax, 1
sar ebx, 1
mov ecx, eax
and ecx, ebx
xor ebx, eax
lea eax, [ebx + ecx*2]
add eax, 0xa
test eax, eax
jns 0x41b596
mov eax, 0xffffffff
jmp 0x41b5a0
lea eax, [ebx + ecx*2]
lea eax, [eax*2 + 0x14]
push eax
call fcn.0040cc80
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x41b5d1
add edi, 2
mov edx, eax
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 0x41b5c0
mov dword [esp + 4], eax
inc esi
mov eax, edx
mov word [edx], 0x2f
mov dword [esp + 8], 0x5784497b
mov dword [esp + 0xc], 0x53a955b9
mov dword [esp + 0x10], 0x5fa25162
mov dword [esp + 0x14], 0x5ba65da4
mov dword [esp + 0x18], 0x5958
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 0x1c
mov ebx, edx
xor ebx, 0xe
add ebx, edi
xor bl, byte [esp + edx + 8]
add bl, 0xba
mov byte [esp + edx + 8], bl
inc edx
add ecx, 2
cmp edx, 0x14
jne 0x41b610
add eax, 2
movzx ecx, word [esp + 0x80]
test cx, cx
je 0x41b661
lea edx, [esp + 0x82]
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 0x41b650
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x41b691
lea edx, [esp + 0xa]
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 0x41b680
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0x2c]
call fcn.00405ca0
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x41b6b0
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0xc]
push ebx
call fcn.0040d540
mov dword [esp], eax
push edi
call fcn.00405d30
add esp, 4
push ebx
call fcn.0040cc90
add esp, 4
push dword [esp + 0x2c]
call fcn.00404eb0
add esp, 4
mov ebx, dword [esp + 0x48]
and bl, 1
or bl, byte [esp]
jmp 0x41aca4
mov edi, ecx
dec ecx
cmp ecx, 3
jb 0x41b762
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, word [edx]
xor ecx, ecx
test ax, ax
setne cl
mov word [ebx], ax
lea eax, [edx + ecx*2]
movzx ecx, word [edx + ecx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 4], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edx, [eax + edx*2]
mov word [ebx + 6], cx
add ebx, 8
add edi, 0xfffffffc
jne 0x41b710
mov word [ebx], 0
mov eax, dword [esp + 0x30]
cmp byte [esp + eax + 0x154], 0
jne 0x41b2fa
mov dword [esp + 8], 0x95d0b2c
mov dword [esp + 0xc], 0x57b077a
mov dword [esp + 0x10], 0x17b0375
mov dword [esp + 0x14], 0x1d691f72
mov dword [esp + 0x18], 0x196b1b90
mov word [esp + 0x1c], 0x1718
mov dword [esp + 0x1e], 0
mov eax, 0x69ab9903
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x69ab98fb]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xf1
mov byte [esp + eax - 0x69ab98fb], cl
inc eax
cmp eax, 0x69ab991d
jne 0x41b7c0
movzx eax, word [esp + 8]
test ax, ax
je 0x41b806
lea ecx, [esp + 0xa]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41b7f5
mov word [ebx], 0
jmp 0x41b2fa
mov eax, dword [esp + 0x54]
and bl, 1
test eax, eax
je 0x41a972
cmp eax, dword [esp + 0x58]
je 0x41a972
push eax
call fcn.0040cc90
add esp, 4
mov dword [esp + 0x54], 0
jmp 0x41a972