Function at 0x41acff
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x21ec
call fcn.00408f30
mov dword [esp + 0x11ec], 0x9738993c
mov dword [esp + 0x11f0], 0x93299529
mov dword [esp + 0x11f4], 0x8f219129
mov dword [esp + 0x11f8], 0x8b248d20
mov dword [esp + 0x11fc], 0x87228921
mov dword [esp + 0x1200], 0x832d8529
mov dword [esp + 0x1204], 0xff50813d
mov word [esp + 0x1208], 0xfdfc
mov dword [esp + 0x120a], 0
mov dword [esp + 0xa7c], 0
mov eax, dword [esp + 0xa7c]
cmp eax, 0x21
ja 0x41ac68
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa7c]
mov ecx, dword [esp + 0xa7c]
movzx ecx, byte [esp + ecx + 0x11ec]
add eax, 0x52b4fea6
xor eax, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x7c]
add al, 0xc2
mov ecx, dword [esp + 0xa7c]
mov byte [esp + ecx + 0x11ec], al
inc dword [esp + 0xa7c]
mov eax, dword [esp + 0xa7c]
cmp eax, 0x22
jb 0x41ac20
lea eax, [esp + 0x28]
lea esi, [esp + 0x11ec]
push 0
push 0
push 0x20019
push eax
push esi
call fcn.004379c0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x43e504]
lea eax, [esp + 0x64]
lea ecx, [esp + 0x48]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x48]
call fcn.00437e10
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43e50c]
xor eax, eax
jmp 0x41c6f0
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x10], 0
cmp ecx, dword [esp + 0x48]
setb al
mov dword [esp + 0x14], 0
jmp dword [eax*4 + 0x43e514]
mov word [esi], 0
mov eax, dword [esp + 0x10]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x43e51c]
movzx ecx, word [esp + 0x11ec]
xor ebx, ebx
test cx, cx
je 0x41c4e8
lea eax, [esp + 0x11ec]
jmp 0x41c4c0
mov ecx, dword [esp + 0x14]
inc ecx
xor eax, eax
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x48]
setb al
jmp dword [eax*4 + 0x43e514]
mov edi, dword [esp + 0x64]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41ad4b
mov eax, 0xffffffff
push eax
call fcn.00408f60
add esp, 4
mov dword [esp + 0x60], edi
mov edi, eax
lea eax, [esp + 0x60]
push eax
push edi
push dword [esp + 0x1c]
push dword [esp + 0x34]
call fcn.00437af0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43e524]
jmp dword [0x43e5c4]
jmp dword [0x43e52c]
mov ecx, dword [esp + 0x5c]
add ecx, 4
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x43e554]
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + ecx + 0x68]
mov dword [esp + 0x7c], 0x792a7b2c
mov dword [esp + 0x80], 0x65366728
mov dword [esp + 0x84], 0x61326334
mov dword [esp + 0x88], 0x6d166f30
mov word [esp + 0x8c], 0x6b6c
lea ecx, [esp + 0x11c]
mov byte [ecx - 0x8a], 0
mov dword [ecx - 0x8e], 0
mov dword [esp + 0x87c], 0
mov ecx, dword [esp + 0x87c]
cmp ecx, 0x16
ja 0x41ae7a
mov ecx, dword [esp + 0x87c]
mov edx, dword [esp + 0x87c]
movzx edx, byte [esp + edx + 0x7c]
lea esi, [ecx + edx]
add esi, 0xe91189eb
add ecx, 0xe91189eb
not edx
or ecx, edx
sub edx, ecx
lea ecx, [esi + edx*2]
mov dword [esp + 0xa7c], ecx
mov ecx, dword [esp + 0xa7c]
add cl, 0x69
mov edx, dword [esp + 0x87c]
mov byte [esp + edx + 0x7c], cl
inc dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
cmp ecx, 0x17
jb 0x41ae20
movzx ecx, word [eax]
lea esi, [esp + 0x87c]
test cx, cx
je 0x41aea1
add eax, 2
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x41ae90
mov word [esi], 0
movzx eax, word [esp + 0x7c]
test ax, ax
je 0x41aed1
lea ecx, [esp + 0x7e]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41aec0
mov word [esi], 0
mov di, 0x31
xor eax, eax
cmp di, 0x35
setb al
mov dword [esp + 0x4c], esi
jmp dword [eax*4 + 0x43e56c]
inc edi
xor eax, eax
cmp di, 0x35
setb al
jmp dword [eax*4 + 0x43e56c]
mov word [esi - 2], di
lea eax, [esp + 0x44]
lea ecx, [esp + 0x87c]
push dword [esp + 0x24]
push 0
push 0x20019
push eax
push ecx
call fcn.004379c0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43e574]
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], 0x800
mov dword [esp + 0x18], 0x400
mov dword [esp + 8], 0
xor ebp, ebp
jmp dword [0x43e580]
lea eax, [esp + 0x18]
lea edi, [esp + 0xa7c]
lea ecx, [esp + 0x20]
lea edx, [esp + 0x54]
push eax
push edi
push ecx
push edx
lea eax, [esp + 0x8c]
push eax
push ebp
push dword [esp + 0x5c]
call fcn.00438110
add esp, 0x1c
jmp dword [0x43e588]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43e58c]
test byte [esp + 8], 1
sete al
cmp dword [esp + 0x20], 1
sete cl
and cl, al
movzx eax, cl
mov dword [esp + 0xc], ebp
jmp dword [eax*4 + 0x43e594]
xor eax, eax
cmp dword [esp + 0x20], 3
sete al
jmp dword [eax*4 + 0x43e5a4]
inc ebp
jmp dword [0x43e580]
mov dword [esp + 0x2c], 0x73d171b1
mov dword [esp + 0x30], 0x7fc97ddf
mov dword [esp + 0x34], 0x7bcc79c5
mov dword [esp + 0x38], 0x474645f8
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41b03e
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x2c]
add eax, 0x240cc894
xor eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
add al, 0x1c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x2c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x41b010
movzx ebp, word [esp + 0x2c]
lea esi, [esp + 0x7c]
test bp, bp
je 0x41b08c
lea eax, [esp + 0x7c]
lea edx, [esp + 0x2c]
mov esi, eax
jmp 0x41b068
movzx ebp, word [edx]
test bp, bp
je 0x41b08c
movzx ebx, word [eax]
test bx, bx
je 0x41b08a
add edx, 2
add eax, 2
lea ecx, [esi + 2]
cmp bx, bp
je 0x41b082
mov esi, ecx
mov eax, ecx
je 0x41b060
lea edx, [esp + 0x2c]
jmp 0x41b060
xor esi, esi
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x43e59c]
xor eax, eax
cmp dword [esp + 0x20], 3
sete al
mov ebp, dword [esp + 0xc]
jmp dword [eax*4 + 0x43e5a4]
mov dword [esp + 0x2c], 0x21852774
mov dword [esp + 0x30], 0x3daf23ad
mov dword [esp + 0x34], 0x398f3fb5
mov dword [esp + 0x38], 0x35863b8a
mov word [esp + 0x3c], 0x3734
lea eax, [esp + 0x3e]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x17
ja 0x41b12e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x2c]
add eax, 0x3bca9409
xor eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
add al, 0xd3
mov ecx, dword [esp]
mov byte [esp + ecx + 0x2c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x18
jb 0x41b100
movzx edi, word [esp + 0x2c]
lea eax, [esp + 0x7c]
test di, di
je 0x41b24e
lea ecx, [esp + 0x7c]
lea edx, [esp + 0x2c]
mov eax, ecx
jmp 0x41b15c
movzx edi, word [edx]
test di, di
je 0x41b24e
movzx ebx, word [ecx]
test bx, bx
je 0x41b24c
add edx, 2
add ecx, 2
lea esi, [eax + 2]
cmp bx, di
je 0x41b17a
mov eax, esi
mov ecx, esi
je 0x41b150
lea edx, [esp + 0x2c]
jmp 0x41b150
mov eax, dword [esp + 0x18]
cmp eax, 2
mov esi, dword [esp + 4]
mov ebp, dword [esp + 0xc]
jb 0x41b232
shr eax, 1
lea ecx, [eax - 1]
mov edx, eax
and edx, 3
je 0x41b1d7
mov dword [esp + 8], ecx
xor ebp, ebp
lea edi, [esp + 0xa7c]
mov ecx, esi
movzx esi, word [edi]
xor ebx, ebx
test si, si
setne bl
lea edi, [edi + ebx*2]
mov word [ecx], si
mov esi, ecx
add esi, 2
inc ebp
cmp edx, ebp
jne 0x41b1b0
sub eax, ebp
mov ebp, dword [esp + 0xc]
mov ecx, dword [esp + 8]
cmp ecx, 3
jb 0x41b232
nop
nop
nop
nop
movzx ecx, word [edi]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [esi], cx
movzx ecx, word [edi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [ebx + edx*2]
mov word [esi + 2], cx
movzx ecx, word [ebx + edx*2]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [esi + 4], cx
movzx edx, word [edi + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [esi + 6], dx
add esi, 8
lea edi, [ebx + ecx*2]
add eax, 0xfffffffc
jne 0x41b1e0
mov dword [esi], 0x20003a
add esi, 4
mov dword [esp + 4], esi
mov al, 1
mov dword [esp + 8], eax
inc ebp
jmp dword [0x43e580]
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e5ac]
inc ebp
jmp dword [0x43e580]
mov esi, dword [esp + 4]
jmp dword [0x43e5b8]
mov eax, dword [esp + 0x18]
cmp eax, 2
jae 0x41b27d
mov edx, esi
jmp 0x41b326
shr eax, 1
lea edi, [eax - 1]
mov ebp, eax
lea ecx, [esp + 0xa7c]
and ebp, 3
je 0x41b2c5
mov dword [esp + 0x10], edi
xor edi, edi
mov edx, esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [ecx]
xor ebx, ebx
test si, si
setne bl
lea ecx, [ecx + ebx*2]
mov word [edx], si
add edx, 2
inc edi
cmp ebp, edi
jne 0x41b2a0
sub eax, edi
mov esi, dword [esp + 4]
mov edi, dword [esp + 0x10]
jmp 0x41b2c7
mov edx, esi
cmp edi, 3
mov ebp, dword [esp + 0xc]
jb 0x41b326
movzx esi, word [ecx]
xor ebx, ebx
test si, si
setne bl
lea edi, [ecx + ebx*2]
mov word [edx], si
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
lea esi, [edi + ebx*2]
mov word [edx + 2], cx
movzx ecx, word [edi + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
lea edi, [esi + ebx*2]
mov word [edx + 4], cx
movzx esi, word [esi + ebx*2]
xor ecx, ecx
test si, si
setne cl
mov word [edx + 6], si
add edx, 8
lea ecx, [edi + ecx*2]
add eax, 0xfffffffc
jne 0x41b2d0
mov esi, dword [esp + 4]
mov word [edx], 0xa
jmp case.0x41b52d.19
mov word [eax], 0xa
jmp dword [0x43e5c0]
mov edi, dword [esp + 0x18]
mov eax, esi
cmp edi, 2
jb 0x41b330
shr edi, 1
mov edx, edi
and edx, 3
je 0x41b387
xor ebp, ebp
lea ecx, [esp + 0xa7c]
mov dword [esp + 4], esi
mov eax, esi
nop
nop
movzx esi, word [ecx]
xor ebx, ebx
test si, si
setne bl
lea ecx, [ecx + ebx*2]
mov word [eax], si
add eax, 2
inc ebp
cmp edx, ebp
jne 0x41b360
mov edx, edi
sub edx, ebp
mov esi, dword [esp + 4]
mov ebp, dword [esp + 0xc]
jmp 0x41b392
lea ecx, [esp + 0xa7c]
mov eax, esi
mov edx, edi
dec edi
cmp edi, 3
jb 0x41b330
mov ebp, esi
nop
nop
nop
nop
nop
nop
movzx esi, word [ecx]
xor ebx, ebx
test si, si
setne bl
lea edi, [ecx + ebx*2]
mov word [eax], si
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
lea esi, [edi + ebx*2]
mov word [eax + 2], cx
movzx ecx, word [edi + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
lea edi, [esi + ebx*2]
mov word [eax + 4], cx
movzx esi, word [esi + ebx*2]
xor ecx, ecx
test si, si
setne cl
mov word [eax + 6], si
add eax, 8
lea ecx, [edi + ecx*2]
add edx, 0xfffffffc
jne 0x41b3a0
mov esi, ebp
mov ebp, dword [esp + 0xc]
jmp 0x41b330
add eax, 2
mov cl, 1
mov dword [esp + 0x10], ecx
inc ebp
mov dword [esp + 4], eax
jmp dword [0x43e580]
lea eax, [esp + 0x18]
lea ecx, [esp + 0xa7c]
lea edx, [esp + 0x20]
lea esi, [esp + 0x54]
lea edi, [esp + 0x7c]
push eax
push ecx
push edx
push esi
push edi
push ebp
push dword [esp + 0x5c]
call fcn.00438110
add esp, 0x1c
jmp case.0x41c364.11
mov eax, dword [esp + 0x44]
mov dword [esp + 0x2c], 0xe0e7e6e5
mov word [esp + 0x30], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 5
ja 0x41b4b0
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 + 0x2c]
add ecx, 0x11c40b59
xor ecx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
add cl, 0x43
mov edx, dword [esp]
mov byte [esp + edx + 0x2c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 6
jb 0x41b480
mov ecx, dword [0x442de0]
test ecx, ecx
je 0x41b4f0
mov edx, dword [esp + 0x2c]
xor edi, edi
mov ebx, dword [0x442de4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x625b6034
je 0x41b4e0
inc edi
cmp ecx, edi
jne 0x41b4d0
jmp 0x41b4f0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne case.default.0x41b502
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x50]
inc edi
xor eax, eax
cmp di, 0x35
setb al
mov esi, dword [esp + 0x4c]
jmp dword [eax*4 + 0x43e56c]
push eax
push 1
push dword [0x442de8]
push ecx
call fcn.00435090
add esp, 0x10
mov edi, dword [esp + 0x50]
inc edi
xor eax, eax
cmp di, 0x35
setb al
mov esi, dword [esp + 0x4c]
jmp dword [eax*4 + 0x43e56c]
cmp dword [ebx + edi*8], 0x625b6034
je 0x41b550
inc edi
cmp ecx, edi
jne 0x41b540
jmp case.0x41c364.3
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x41c364.3
push eax
push 1
push dword [0x442de8]
push ecx
call fcn.00435090
add esp, 0x10
jmp case.0x41c364.3
jmp dword [0x43e568]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x7c], 0xe0e7e6e5
mov word [esp + 0x80], 0
mov dword [esp + 0x87c], 0
mov ecx, dword [esp + 0x87c]
cmp ecx, 5
ja 0x41b5fa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x87c]
mov edx, dword [esp + 0x87c]
movzx edx, byte [esp + edx + 0x7c]
add ecx, 0x11c40b59
xor ecx, edx
mov dword [esp + 0xa7c], ecx
mov ecx, dword [esp + 0xa7c]
add cl, 0x43
mov edx, dword [esp + 0x87c]
mov byte [esp + edx + 0x7c], cl
inc dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
cmp ecx, 6
jb 0x41b5b0
mov ecx, dword [0x442de0]
test ecx, ecx
je 0x41b570
mov edx, dword [esp + 0x7c]
xor edi, edi
mov ebx, dword [0x442de4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x625b6034
je 0x41b640
inc edi
cmp ecx, edi
jne 0x41b620
jmp 0x41b570
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x41b570
push eax
push 1
push dword [0x442de8]
push ecx
call fcn.00435090
add esp, 0x10
jmp dword [0x43e568]
mov dword [esp + 0x7c], 0xe17de753
mov dword [esp + 0x80], 0xdd70e37d
mov dword [esp + 0x84], 0xd953df4d
mov dword [esp + 0x88], 0xd544db49
mov dword [esp + 0x8c], 0xd172d758
mov dword [esp + 0x90], 0xcd49d379
mov dword [esp + 0x94], 0xc952cf5a
mov dword [esp + 0x98], 0xc543cb59
mov dword [esp + 0x9c], 0xc1a6c749
mov dword [esp + 0xa0], 0x3d5dc377
mov dword [esp + 0xa4], 0x39b33fb1
mov dword [esp + 0xa8], 0x35a33b9b
mov dword [esp + 0xac], 0x31a037af
mov dword [esp + 0xb0], 0x2d5233a9
mov dword [esp + 0xb4], 0x29a12f81
mov dword [esp + 0xb8], 0x25a72b8a
mov dword [esp + 0xbc], 0x21ab27af
mov dword [esp + 0xc0], 0x1dbd23ac
mov dword [esp + 0xc4], 0x19ba1f8b
mov dword [esp + 0xc8], 0x15881ba8
mov dword [esp + 0xcc], 0x11881785
mov dword [esp + 0xd0], 0xd86138b
mov dword [esp + 0xd4], 0x9830f93
mov dword [esp + 0xd8], 0x5410bac
mov dword [esp + 0xdc], 0x14f0749
mov dword [esp + 0xe0], 0x7dbf034f
mov dword [esp + 0xe4], 0x79c07fc2
mov dword [esp + 0xe8], 0x75367b28
mov dword [esp + 0xec], 0x713b7727
mov dword [esp + 0xf0], 0x6d217323
mov dword [esp + 0xf4], 0x69f26f3f
mov dword [esp + 0xf8], 0x65286b25
mov dword [esp + 0xfc], 0x612e672c
mov dword [esp + 0x100], 0x5d326323
mov dword [esp + 0x104], 0x590d5f0c
mov dword [esp + 0x108], 0x55165b08
mov dword [esp + 0x10c], 0x51045716
mov dword [esp + 0x110], 0x4d1c5313
mov dword [esp + 0x114], 0x49074f02
mov dword [esp + 0x118], 0x45ee4b06
mov word [esp + 0x11c], 0x4744
lea eax, [esp + 0x11c]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0xa7
ja 0x41b8aa
nop
nop
nop
nop
mov eax, dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
movzx ecx, byte [esp + ecx + 0x7c]
add eax, 0x28f8159
xor eax, ecx
mov dword [esp + 0xa7c], eax
mov eax, dword [esp + 0xa7c]
add al, 0x43
mov ecx, dword [esp + 0x87c]
mov byte [esp + ecx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0xa8
jb 0x41b860
lea edi, [esp + 0xe7e]
lea eax, [esp + 0x7c]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x11c]
lea edi, [esp + 0xf1e]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x7c], 0xb75f897d
mov dword [esp + 0x80], 0xb32cb55b
mov dword [esp + 0x84], 0xbf21b123
mov dword [esp + 0x88], 0xbb50bd2f
mov dword [esp + 0x8c], 0xa742b924
mov dword [esp + 0x90], 0xa34ba55f
mov dword [esp + 0x94], 0xaf42a132
mov dword [esp + 0x98], 0xab31ad3f
mov dword [esp + 0x9c], 0x5776a937
mov dword [esp + 0xa0], 0x53ae55a6
mov dword [esp + 0xa4], 0x5f9151b4
mov dword [esp + 0xa8], 0x5bc45dc1
mov dword [esp + 0xac], 0x47ab59c6
mov dword [esp + 0xb0], 0x43de45d6
mov dword [esp + 0xb4], 0x4fa341ba
mov dword [esp + 0xb8], 0x4bd54dd2
mov dword [esp + 0xbc], 0x77e549a1
mov dword [esp + 0xc0], 0x739675e6
mov dword [esp + 0xc4], 0x7f97718b
mov dword [esp + 0xc8], 0x7b967dee
mov dword [esp + 0xcc], 0x67fd79eb
mov dword [esp + 0xd0], 0x634265fb
mov dword [esp + 0xd4], 0x6f836195
mov dword [esp + 0xd8], 0x6bf56df3
mov dword [esp + 0xdc], 0x17fd6989
mov dword [esp + 0xe0], 0x138015fd
mov dword [esp + 0xe4], 0x1f3e11fb
mov dword [esp + 0xe8], 0x1b871de3
mov dword [esp + 0xec], 0x79919f6
mov dword [esp + 0xf0], 0x39d059d
mov dword [esp + 0xf4], 0xfe3019c
mov dword [esp + 0xf8], 0xbee0d99
mov dword [esp + 0xfc], 0x37a809f8
mov dword [esp + 0x100], 0x33d835a7
mov dword [esp + 0x104], 0x3faa31d9
mov dword [esp + 0x108], 0x3ba53dd1
mov dword [esp + 0x10c], 0x27d539dc
mov dword [esp + 0x110], 0x23be25b9
mov dword [esp + 0x114], 0x2fbd21b4
mov dword [esp + 0x118], 0x2bbd2dbf
mov dword [esp + 0x11c], 0xd70f29cc
mov dword [esp + 0x120], 0xd309d50b
mov dword [esp + 0x124], 0xdf11d10d
mov dword [esp + 0x128], 0xdb10dd16
mov dword [esp + 0x12c], 0xc71ad908
mov dword [esp + 0x130], 0xc31dc515
mov dword [esp + 0x134], 0xcf1fc111
mov dword [esp + 0x138], 0xcb26cd1d
mov dword [esp + 0x13c], 0xf738c917
mov dword [esp + 0x140], 0xf32af52c
mov dword [esp + 0x144], 0xff2ef131
mov dword [esp + 0x148], 0xfb2bfd2c
mov dword [esp + 0x14c], 0xe73af928
mov dword [esp + 0x150], 0xe33ce52a
mov dword [esp + 0x154], 0xef34e121
mov dword [esp + 0x158], 0xeb31ed36
mov dword [esp + 0x15c], 0x9772e932
mov word [esp + 0x160], 0x9594
mov dword [esp + 0x162], 0
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0xe9
ja 0x41bbca
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
movzx ecx, byte [esp + ecx + 0x7c]
add eax, 0x9a12575e
xor eax, ecx
mov dword [esp + 0xa7c], eax
mov eax, dword [esp + 0xa7c]
add al, 0x2a
mov ecx, dword [esp + 0x87c]
mov byte [esp + ecx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0xea
jb 0x41bb80
lea ebp, [esp + 0x1106]
lea eax, [esp + 0x7c]
mov edi, ebp
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x160]
lea edi, [esp + 0x11ea]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x7c], 0xf145ffa3
mov dword [esp + 0x80], 0xf540f355
mov dword [esp + 0x84], 0xc943f745
mov dword [esp + 0x88], 0xcd6ccb79
mov dword [esp + 0x8c], 0xc162cf78
mov dword [esp + 0x90], 0xc564c391
mov dword [esp + 0x94], 0xd97dc762
mov dword [esp + 0x98], 0xdd7ddb7d
mov dword [esp + 0x9c], 0xd1addf70
mov dword [esp + 0xa0], 0xd5acd3a5
mov dword [esp + 0xa4], 0x297ad7a4
mov dword [esp + 0xa8], 0x2d9d2b79
mov dword [esp + 0xac], 0x21922f98
mov dword [esp + 0xb0], 0x25932391
mov dword [esp + 0xb4], 0x398a2799
mov dword [esp + 0xb8], 0x3d883b68
mov dword [esp + 0xbc], 0x31983f8d
mov dword [esp + 0xc0], 0x358e338b
mov dword [esp + 0xc4], 0x9833793
mov dword [esp + 0xc8], 0xd5b0ba4
mov dword [esp + 0xcc], 0x1ba0fbb
mov dword [esp + 0xd0], 0x5b303bc
mov dword [esp + 0xd4], 0x19bb07b5
mov dword [esp + 0xd8], 0x1d511bb4
mov dword [esp + 0xdc], 0x11571f69
mov dword [esp + 0xe0], 0x15571367
mov dword [esp + 0xe4], 0x69501752
mov dword [esp + 0xe8], 0x6d1e6b18
mov dword [esp + 0xec], 0x611b6f1f
mov dword [esp + 0xf0], 0x65116313
mov dword [esp + 0xf4], 0x79c26717
mov dword [esp + 0xf8], 0x7d387b0d
mov dword [esp + 0xfc], 0x71367f34
mov dword [esp + 0x100], 0x75027333
mov dword [esp + 0x104], 0x49057704
mov dword [esp + 0x108], 0x4d3e4b38
mov dword [esp + 0x10c], 0x413c4f0e
mov dword [esp + 0x110], 0x45344303
mov dword [esp + 0x114], 0x590f4732
mov dword [esp + 0x118], 0x5df65b2e
mov dword [esp + 0x11c], 0x5f5c
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0xa3
ja 0x41be2a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
movzx ecx, byte [esp + ecx + 0x7c]
add eax, 0xc6c750d5
xor eax, ecx
mov dword [esp + 0xa7c], eax
mov eax, dword [esp + 0xa7c]
add al, 0xd7
mov ecx, dword [esp + 0x87c]
mov byte [esp + ecx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0xa4
jb 0x41bde0
lea edi, [esp + 0x1064]
lea eax, [esp + 0x7c]
mov ebx, edi
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x11c]
lea edi, [esp + 0x1104]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x7c], 0xff709d5
mov dword [esp + 0x80], 0x3f40deb
mov dword [esp + 0x84], 0x7f101f3
mov dword [esp + 0x88], 0x1be005f7
mov dword [esp + 0x8c], 0x1ff219ec
mov dword [esp + 0x90], 0x13e81dcf
mov dword [esp + 0x94], 0x17ef11ea
mov dword [esp + 0x98], 0x2bcf15f3
mov dword [esp + 0x9c], 0x2f1f29c4
mov dword [esp + 0xa0], 0x23102d18
mov dword [esp + 0xa4], 0x27ca2110
mov dword [esp + 0xa8], 0x3bcf25f7
mov dword [esp + 0xac], 0x3fc239cc
mov dword [esp + 0xb0], 0x33c13dcf
mov dword [esp + 0xb4], 0x37da31cf
mov dword [esp + 0xb8], 0xcb3c35e4
mov dword [esp + 0xbc], 0xcf34c93b
mov dword [esp + 0xc0], 0xc33ecd35
mov dword [esp + 0xc4], 0xc731c125
mov dword [esp + 0xc8], 0xdb09c528
mov dword [esp + 0xcc], 0xdf2ad92d
mov dword [esp + 0xd0], 0xd321dd20
mov dword [esp + 0xd4], 0xd729d123
mov dword [esp + 0xd8], 0xeb23d538
mov dword [esp + 0xdc], 0xef25e9df
mov dword [esp + 0xe0], 0xe325edd9
mov dword [esp + 0xe4], 0xe73ce13a
mov dword [esp + 0xe8], 0xfbcee5d4
mov dword [esp + 0xec], 0xffc9f9c9
mov dword [esp + 0xf0], 0xf3c3fdcd
mov dword [esp + 0xf4], 0xf712f1c1
mov dword [esp + 0xf8], 0x8b4cf5c3
mov dword [esp + 0xfc], 0x8f468940
mov dword [esp + 0x100], 0x83b28d4d
mov dword [esp + 0x104], 0x87b781b0
mov dword [esp + 0x108], 0x9bae85b4
mov dword [esp + 0x10c], 0x9fa8995e
mov dword [esp + 0x110], 0x93589d5d
mov dword [esp + 0x114], 0x975d915a
mov dword [esp + 0x118], 0xab46955e
mov word [esp + 0x11c], 0xa9a8
lea eax, [esp + 0x11c]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0xa7
ja 0x41c09a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
movzx ecx, byte [esp + ecx + 0x7c]
add eax, 0xeeb33442
xor eax, ecx
mov dword [esp + 0xa7c], eax
mov eax, dword [esp + 0xa7c]
add al, 0xb6
mov ecx, dword [esp + 0x87c]
mov byte [esp + ecx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0xa8
jb 0x41c050
mov dword [esp + 4], esi
lea eax, [esp + 0xfc2]
lea edx, [esp + 0x7c]
mov ecx, 0x28
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x11c]
lea edi, [esp + 0x1062]
mov ecx, 1
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x7c], 0x11851f63
mov dword [esp + 0x80], 0x15801375
mov dword [esp + 0x84], 0x9831785
mov dword [esp + 0x88], 0xd6c0b99
mov dword [esp + 0x8c], 0x1620f98
mov dword [esp + 0x90], 0x5640371
mov dword [esp + 0x94], 0x399d0762
mov dword [esp + 0x98], 0x3d5d3b5d
mov dword [esp + 0x9c], 0x316d3f50
mov dword [esp + 0xa0], 0x356c3367
mov dword [esp + 0xa4], 0x295a3764
mov dword [esp + 0xa8], 0x2dbd2b59
mov dword [esp + 0xac], 0x21b22fb8
mov dword [esp + 0xb0], 0x25b323b1
mov dword [esp + 0xb4], 0x594a27b9
mov dword [esp + 0xb8], 0x5dc85b28
mov dword [esp + 0xbc], 0x51385fcd
mov dword [esp + 0xc0], 0x55ce53cb
mov dword [esp + 0xc4], 0x49c35733
mov dword [esp + 0xc8], 0x4d3b4b24
mov dword [esp + 0xcc], 0x41da4fdb
mov dword [esp + 0xd0], 0x45d343dc
mov dword [esp + 0xd4], 0x79db47d5
mov dword [esp + 0xd8], 0x7d317b14
mov dword [esp + 0xdc], 0x71377f29
mov dword [esp + 0xe0], 0x75377327
mov dword [esp + 0xe4], 0x69307732
mov dword [esp + 0xe8], 0x6d3e6b38
mov dword [esp + 0xec], 0x613b6f3f
mov dword [esp + 0xf0], 0x65316333
mov dword [esp + 0xf4], 0x99026737
mov dword [esp + 0xf8], 0x9dd89bcd
mov dword [esp + 0xfc], 0x91d69fd4
mov dword [esp + 0x100], 0x95c293d3
mov dword [esp + 0x104], 0x89c597c4
mov dword [esp + 0x108], 0x8dde8bd8
mov dword [esp + 0x10c], 0x81dc8fce
mov dword [esp + 0x110], 0x85d483c3
mov dword [esp + 0x114], 0xb9cf87d2
mov dword [esp + 0x118], 0xbdd6bbee
mov word [esp + 0x11c], 0xbfbc
lea ecx, [esp + 0x11c]
mov byte [ecx + 6], 0
mov dword [ecx + 2], 0
mov dword [esp + 0x87c], 0
mov ecx, dword [esp + 0x87c]
cmp ecx, 0xa6
ja 0x41c30d
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x87c]
mov edx, dword [esp + 0x87c]
movzx edx, byte [esp + edx + 0x7c]
add ecx, 0xc38dda05
xor ecx, edx
mov dword [esp + 0xa7c], ecx
mov ecx, dword [esp + 0xa7c]
add cl, 0xe7
mov edx, dword [esp + 0x87c]
mov byte [esp + edx + 0x7c], cl
inc dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
cmp ecx, 0xa7
jb 0x41c2c0
lea edx, [esp + 0xf20]
lea esi, [esp + 0x7c]
mov edi, edx
mov ecx, 0x28
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x11c]
lea edi, [esp + 0xfc0]
mov ecx, 1
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0xe7e]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x43e554]
mov esi, dword [esp + 4]
jmp dword [0x43e560]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x7c], 0xe0e7e6e5
mov word [esp + 0x80], 0
mov dword [esp + 0x87c], 0
mov ecx, dword [esp + 0x87c]
cmp ecx, 5
ja 0x41c3fa
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x87c]
mov edx, dword [esp + 0x87c]
movzx edx, byte [esp + edx + 0x7c]
add ecx, 0x11c40b59
xor ecx, edx
mov dword [esp + 0xa7c], ecx
mov ecx, dword [esp + 0xa7c]
add cl, 0x43
mov edx, dword [esp + 0x87c]
mov byte [esp + edx + 0x7c], cl
inc dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
cmp ecx, 6
jb 0x41c3b0
mov ecx, dword [0x442de0]
test ecx, ecx
je case.0x41c364.3
mov edx, dword [esp + 0x7c]
xor edi, edi
mov ebx, dword [0x442de4]
jmp 0x41b540
push edi
call fcn.00408f70
add esp, 4
mov ecx, dword [esp + 0x14]
inc ecx
xor eax, eax
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x48]
setb al
jmp dword [eax*4 + 0x43e514]
mov dword [esp + 0x58], edi
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43e53c]
mov edi, dword [esp + 0x58]
jmp dword [0x43e5c4]
lea eax, [esp + 0x24]
push dword [esp + 0x28]
push 0
push 0x20019
push eax
push edi
call fcn.004379c0
add esp, 0x14
lea eax, [esp + 0x24]
push dword [esp + 0x28]
push 0
push 0x20019
push eax
push edi
call fcn.004379c0
add esp, 0x14
jmp dword [0x43e538]
add ebx, edx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
mov esi, edi
je 0x41c4e8
cmp eax, esi
jae 0x41c4e8
mov edi, esi
movzx esi, cx
cmp esi, 0x800
mov ecx, 3
sbb ecx, 0
mov edx, 1
cmp esi, 0x80
jb 0x41c4b0
mov edx, ecx
jmp 0x41c4b0
lea eax, [ebx + 1]
mov dword [esp + 4], eax
push eax
call fcn.00408f60
add esp, 4
mov ebp, eax
lea eax, [esp + 0x11ec]
cmp eax, esi
setb al
mov dword [esp + 8], ebp
mov ecx, ebx
mov dword [esp + 0x10], ebx
test ebx, ebx
jle 0x41c5e5
mov ebp, dword [esp + 8]
test al, al
je 0x41c5e5
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 8]
add eax, ebp
mov dword [esp + 0xc], eax
add dword [esp + 4], ebp
lea edx, [esp + 0x11ee]
nop
nop
nop
movzx ecx, word [edx - 2]
test cx, cx
je 0x41c5e5
cmp cx, 0x7f
ja 0x41c560
mov byte [ebp], cl
mov edi, 1
jmp 0x41c5d0
mov eax, ebp
not eax
add eax, dword [esp + 4]
movzx ebx, cx
cmp eax, 2
jb 0x41c5a0
cmp ebx, 0x7ff
ja 0x41c5a0
mov eax, ecx
shr eax, 6
add al, 0xc0
mov byte [ebp], al
and cl, 0x3f
or cl, 0x80
mov byte [ebp + 1], cl
mov edi, 2
jmp 0x41c5d0
xor edi, edi
cmp eax, 3
jb 0x41c5d0
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov byte [ebp], al
shr ebx, 6
and bl, 0x3f
or bl, 0x80
mov byte [ebp + 1], bl
and cl, 0x3f
or cl, 0x80
mov byte [ebp + 2], cl
mov edi, 3
nop
nop
nop
nop
nop
add ebp, edi
cmp ebp, dword [esp + 0xc]
jae 0x41c5e5
lea eax, [edx + 2]
cmp edx, esi
mov edx, eax
jb 0x41c540
mov ecx, dword [esp + 0x2200]
mov byte [ebp], 0
mov dword [esp + 0x7c], 0xe3e69949
mov dword [esp + 0x80], 0xefd3dadd
mov dword [esp + 0x84], 0xe0ece2d9
mov dword [esp + 0x88], 0xe7e7ce2f
mov dword [esp + 0x8c], 0xf0f5eaec
mov dword [esp + 0x90], 0xf0fcd537
mov dword [esp + 0x94], 0xc2fac8ca
mov dword [esp + 0x98], 0xf3f63ff3
mov word [esp + 0x9c], 0x69f4
mov dword [esp + 0x9e], 0
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0x25
ja 0x41c6c8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x87c]
mov edx, dword [esp + 0x87c]
movzx edx, byte [esp + edx + 0x7c]
add eax, 0xf97b53e
xor eax, edx
mov dword [esp + 0xa7c], eax
mov eax, dword [esp + 0xa7c]
add al, 0xca
mov edx, dword [esp + 0x87c]
mov byte [esp + edx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0x26
jb 0x41c680
lea eax, [esp + 0x7c]
push dword [esp + 0x10]
mov esi, dword [esp + 0xc]
push esi
push eax
call fcn.00409910
jmp dword [0x43e5cc]
push esi
mov esi, eax
call fcn.00408f70
mov eax, esi
add esp, 4
and al, 1
add esp, 0x21ec
pop esi
pop edi
pop ebx
pop ebp
ret
inc ecx
add al, al
test al, 0x41
add byte [ebx - 0x55], dh
inc ecx
add byte [eax - 0x6fffbe55], al
lodsb al, byte [esi]
inc ecx
add byte [esi - 0x41ffbe54], bh
lodsb al, byte [esi]
inc ecx
add ch, al
lodsb al, byte [esi]
inc ecx
add bh, ah
lodsb al, byte [esi]
inc ecx
add byte [ecx], bh
lodsd eax, dword [esi]
inc ecx
add dh, ch
mov byte [ecx], 0xff
lodsb al, byte [esi]
inc ecx
add byte [ebp + ebp*4 + 0x41], bh
add byte [eax - 0x76ffbe53], dl
les eax, [ecx]
jo 0x43e4f6
inc ecx
add byte [eax - 0x3c], dh
inc ecx
add byte [eax - 0x3c], dl
inc ecx
add byte [eax - 0x3c], ah
inc ecx
add byte [eax - 0x4a], dh
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebx + eax*8 + 0x41], bl
add byte [eax - 0x3d], dh
inc ecx
add byte [esi + 0x7a0041ad], dh
ret