Function at 0x41c97d
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x21f8
call fcn.00409070
mov dword [esp + 0x11f0], 0xfb4af9aa
mov dword [esp + 0x11f4], 0xff45fd3d
mov dword [esp + 0x11f8], 0xf345f145
mov dword [esp + 0x11fc], 0xf746f546
mov dword [esp + 0x1200], 0xeb44e95d
mov dword [esp + 0x1204], 0xef59ed5d
mov dword [esp + 0x1208], 0xe352e129
mov word [esp + 0x120c], 0xe5e2
mov dword [esp + 0x1212], 0
mov dword [esp + 0x120e], 0
mov dword [esp + 0xa80], 0
mov eax, dword [esp + 0xa80]
cmp eax, 0x25
ja 0x41c399
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa80]
mov ecx, dword [esp + 0xa80]
movzx ecx, byte [esp + ecx + 0x11f0]
mov edx, 0x80
sub edx, eax
add eax, 0xd5e3d17f
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x80], edx
mov eax, dword [esp + 0x80]
add al, 0x87
mov ecx, dword [esp + 0xa80]
mov byte [esp + ecx + 0x11f0], al
inc dword [esp + 0xa80]
mov eax, dword [esp + 0xa80]
cmp eax, 0x26
jb 0x41c340
lea eax, [esp + 0x34]
lea ecx, [esp + 0x11f0]
push 0
push 0
push 0x20019
push eax
mov dword [esp + 0x14], ecx
push ecx
call fcn.004364d0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x43d5a4]
lea eax, [esp + 0x60]
lea ecx, [esp + 0x48]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x54]
call fcn.00436970
add esp, 0x24
mov ecx, dword [case.0x41c3be.4]
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43d5bc]
xor eax, eax
jmp 0x41deb5
xor esi, esi
mov dword [esp + 0xc], 0
xor eax, eax
cmp esi, dword [esp + 0x48]
setb al
jmp dword [eax*4 + 0x43d5c4]
mov edx, dword [esp + 4]
mov word [edx], 0
mov eax, dword [esp + 0xc]
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x43d5cc]
movzx ecx, word [esp + 0x11f0]
xor edi, edi
test cx, cx
je 0x41dc78
lea eax, [esp + 0x11f0]
jmp 0x41dc52
inc esi
xor eax, eax
cmp esi, dword [esp + 0x48]
setb al
jmp dword [eax*4 + 0x43d5c4]
jmp dword [0x43d5d8]
mov edx, dword [esp + 0x38]
add edx, 4
xor eax, eax
mov ecx, edx
mov dword [esp + 0x38], edx
cmp edx, 0x14
setne al
jmp dword [eax*4 + 0x43d5f4]
jmp dword [0x43d600]
inc edi
xor eax, eax
cmp di, 0x35
setb al
jmp dword [eax*4 + 0x43d60c]
mov word [esi - 2], di
lea eax, [esp + 0x58]
lea ecx, [esp + 0x880]
push dword [esp + 0x5c]
push 0
push 0x20019
push eax
push ecx
call fcn.004364d0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43d614]
mov dword [esp + 0x54], edi
mov dword [esp + 0x68], 0x800
mov dword [esp + 0x3c], 0x400
xor esi, esi
mov dword [esp + 0x14], 0
jmp 0x41c516
mov esi, dword [esp + 0x10]
inc esi
lea eax, [esp + 0x3c]
lea edi, [esp + 0xa80]
lea ecx, [esp + 0x40]
lea edx, [esp + 0x68]
push eax
push edi
push ecx
push edx
lea eax, [esp + 0x90]
push eax
mov dword [esp + 0x24], esi
push esi
push dword [esp + 0x70]
call fcn.00436cb0
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43d61c]
test byte [esp + 0x14], 1
sete al
cmp dword [esp + 0x40], 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x43d624]
xor eax, eax
cmp dword [esp + 0x40], 3
sete al
jmp dword [eax*4 + 0x43d654]
lea eax, [esp + 0x28]
jmp dword [0x43d630]
mov word [esp + 0x18], 0x8dcd
mov byte [esp + 0x1a], 0xe5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x18], 0x83e58dcd
mov dword [esp + 0x1c], 0x871581e7
mov dword [esp + 0x20], 0xbb288511
mov dword [esp + 0x24], 0xbfbeb92c
mov word [eax + 4], 0
mov dword [eax], 0
jmp dword [0x43d634]
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x15
ja 0x41c629
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x18]
mov edx, 0x69
sub edx, eax
add eax, 0x4b2f9d96
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0xe6
mov ecx, dword [esp]
mov byte [esp + ecx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x16
jb 0x41c5f0
movzx ebx, word [esp + 0x18]
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
test bx, bx
je 0x41c688
lea esi, [esp + 0x80]
lea edx, [esp + 0x18]
mov dword [esp + 8], esi
jmp 0x41c658
movzx ebx, word [edx]
test bx, bx
je 0x41c688
movzx eax, word [esi]
test ax, ax
je 0x41c680
add esi, 2
add edx, 2
mov ecx, dword [esp + 8]
add ecx, 2
cmp ax, bx
je 0x41c678
mov dword [esp + 8], ecx
mov esi, ecx
je 0x41c650
lea edx, [esp + 0x18]
jmp 0x41c650
mov dword [esp + 8], 0
xor eax, eax
cmp dword [esp + 8], 0
setne al
jmp dword [eax*4 + 0x43d63c]
xor eax, eax
cmp dword [esp + 0x40], 3
sete al
jmp dword [eax*4 + 0x43d654]
mov dword [esp + 0x18], 0x339331e0
mov dword [esp + 0x1c], 0x37853587
mov dword [esp + 0x20], 0xbb509bf
mov dword [esp + 0x24], 0xfaa0dbe
mov word [esp + 0x28], 0x100
lea eax, [esp + 0x28]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x17
ja 0x41c739
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x18]
mov edx, 0xa7
sub edx, eax
add eax, 0xc7880158
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0x98
mov ecx, dword [esp]
mov byte [esp + ecx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x18
jb 0x41c700
movzx edi, word [esp + 0x18]
lea eax, [esp + 0x80]
test di, di
je 0x41c89c
lea ecx, [esp + 0x80]
lea edx, [esp + 0x18]
mov eax, ecx
jmp 0x41c76c
movzx edi, word [edx]
test di, di
je 0x41c89c
movzx ebx, word [ecx]
test bx, bx
je 0x41c89a
add ecx, 2
add edx, 2
lea esi, [eax + 2]
cmp bx, di
je 0x41c78a
mov eax, esi
mov ecx, esi
je 0x41c760
lea edx, [esp + 0x18]
jmp 0x41c760
mov eax, dword [esp + 0x3c]
cmp eax, 2
jae 0x41c7b2
mov esi, dword [esp + 4]
jmp 0x41c872
shr eax, 1
lea ecx, [eax - 1]
mov esi, eax
and esi, 3
je 0x41c80b
mov dword [esp + 0x14], eax
mov dword [esp + 8], ecx
xor ebx, ebx
lea edi, [esp + 0xa80]
mov edx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, esi
movzx esi, word [edi]
xor ecx, ecx
test si, si
setne cl
lea edi, [edi + ecx*2]
mov word [edx], si
mov esi, eax
add edx, 2
inc ebx
cmp eax, ebx
jne 0x41c7e0
mov dword [esp + 4], edx
mov eax, dword [esp + 0x14]
sub eax, ebx
mov ecx, dword [esp + 8]
cmp ecx, 3
mov esi, dword [esp + 4]
jb 0x41c872
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [edi]
xor edx, edx
test cx, cx
setne dl
mov word [esi], cx
lea ecx, [edi + edx*2]
movzx edx, word [edi + edx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [esi + 2], dx
lea edx, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [esi + 4], cx
lea ecx, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
lea edi, [ecx + ebx*2]
mov word [esi + 6], dx
add esi, 8
add eax, 0xfffffffc
jne 0x41c820
mov word [esi], 0x3a
mov eax, dword [case.0x41ca8d.16]
nop
nop
nop
nop
jmp eax
mov word [esi + 2], 0x20
add esi, 4
mov dword [esp + 4], esi
mov al, 1
mov dword [esp + 0x14], eax
jmp case.0x41ca8d.18
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43d65c]
mov eax, dword [esp + 0x3c]
cmp eax, 2
mov esi, dword [esp + 0x10]
jae 0x41c8c0
mov edx, dword [esp + 4]
jmp 0x41c978
shr eax, 1
lea edi, [eax - 1]
mov ebx, eax
lea ecx, [esp + 0xa80]
and ebx, 3
mov edx, dword [esp + 4]
je 0x41c919
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
xor ebx, ebx
lea ecx, [esp + 0xa80]
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [ecx]
mov edi, edx
xor edx, edx
test si, si
setne dl
lea ecx, [ecx + edx*2]
mov edx, edi
mov word [edi], si
add edx, 2
inc ebx
cmp dword [esp + 8], ebx
jne 0x41c8f0
sub eax, ebx
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
cmp edi, 3
jb 0x41c978
nop
nop
mov esi, edx
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
mov word [esi], dx
lea edx, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [esi + 2], cx
lea ecx, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [esi + 4], dx
lea edx, [ecx + ebx*2]
movzx edi, word [ecx + ebx*2]
xor ecx, ecx
test di, di
setne cl
lea ecx, [edx + ecx*2]
mov word [esi + 6], di
lea edx, [esi + 8]
add eax, 0xfffffffc
jne 0x41c920
mov esi, dword [esp + 0x10]
mov word [edx], 0xa
add edx, 2
mov dword [esp + 4], edx
mov al, 1
mov dword [esp + 0xc], eax
inc esi
jmp 0x41c516
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], 0xead5d4d7
lea ecx, [esp + 0x28]
mov byte [ecx - 4], 0
mov dword [ecx - 8], 0
mov dword [ecx - 0xc], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xc
ja 0x41ca0b
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 + 0x18]
mov esi, 0x62
sub esi, ecx
add ecx, 0xda4ff89d
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x30]
add cl, 0xb5
mov edx, dword [esp]
mov byte [esp + edx + 0x18], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xd
jb 0x41c9d0
mov ecx, dword [0x44132c]
test ecx, ecx
je 0x41ca50
mov edx, dword [esp + 0x18]
xor edi, edi
mov ebx, dword [0x441330]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x41ca40
inc edi
cmp ecx, edi
jne 0x41ca30
jmp 0x41ca50
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne case.default.0x41ca62
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x54]
inc edi
xor eax, eax
cmp di, 0x35
setb al
mov esi, dword [esp + 0x50]
jmp dword [eax*4 + 0x43d60c]
push eax
push 1
push dword [0x441334]
push ecx
call fcn.00433920
add esp, 0x10
mov edi, dword [esp + 0x54]
inc edi
xor eax, eax
cmp di, 0x35
setb al
mov esi, dword [esp + 0x50]
jmp dword [eax*4 + 0x43d60c]
mov dword [esp + 0x80], 0x5b8a5988
mov dword [esp + 0x84], 0x47964594
mov dword [esp + 0x88], 0x43924190
mov dword [esp + 0x8c], 0x4fb64d9c
mov word [esp + 0x90], 0x4948
lea eax, [esp + 0x120]
mov dword [eax - 0x8b], 0
mov dword [eax - 0x8e], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0x18
ja case.0x41daff.3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x80]
mov edx, 0x73
sub edx, eax
add eax, 0x124fc58c
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa80], edx
mov eax, dword [esp + 0xa80]
add al, 0x2c
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0x19
jb 0x41cb10
mov eax, dword [esp + 0x38]
mov eax, dword [esp + eax + 0x6c]
mov dword [esp + 0x80], 0x5b8a5988
mov dword [esp + 0x84], 0x47964594
mov dword [esp + 0x88], 0x43924190
mov dword [esp + 0x8c], 0x4fb64d9c
mov word [esp + 0x90], 0x4948
lea ecx, [esp + 0x120]
mov dword [ecx - 0x8b], 0
mov dword [ecx - 0x8e], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0x18
ja 0x41cc1c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx + 0x80]
mov esi, 0x73
sub esi, ecx
add ecx, 0x124fc58c
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xa80], esi
mov ecx, dword [esp + 0xa80]
add cl, 0x2c
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x80], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 0x19
jb 0x41cbd0
jmp dword [0x43d604]
movzx ecx, word [eax]
lea esi, [esp + 0x880]
test cx, cx
je 0x41cc51
add eax, 2
lea esi, [esp + 0x880]
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x41cc40
mov word [esi], 0
movzx eax, word [esp + 0x80]
test ax, ax
je 0x41cc81
lea ecx, [esp + 0x82]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41cc70
mov word [esi], 0
mov di, 0x31
xor eax, eax
cmp di, 0x35
setb al
mov dword [esp + 0x50], esi
jmp dword [eax*4 + 0x43d60c]
mov edi, dword [esp + 0x60]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41ccb2
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov dword [esp + 0x44], edi
lea ecx, [esp + 0x44]
push ecx
push eax
push esi
push dword [esp + 0x40]
call fcn.00436620
add esp, 0x10
mov edi, dword [esp + 0x60]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41cce4
mov eax, 0xffffffff
push eax
call fcn.004090a0
add esp, 4
mov ebx, eax
mov dword [esp + 0x44], edi
lea eax, [esp + 0x44]
push eax
push ebx
push esi
push dword [esp + 0x40]
call fcn.00436620
add esp, 0x10
jmp dword [0x43d5dc]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43d5e4]
lea eax, [esp + 0x5c]
push dword [esp + 0x34]
push 0
push 0x20019
push eax
push ebx
call fcn.004364d0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43d5ec]
jmp dword [0x43d664]
mov dword [esp + 0x80], 0x7b037939
mov dword [esp + 0x84], 0x7f0e7d1f
mov dword [esp + 0x88], 0x7305710f
mov dword [esp + 0x8c], 0x77127503
mov dword [esp + 0x90], 0x8be48902
mov dword [esp + 0x94], 0x8ff78de3
mov dword [esp + 0x98], 0x83e481f0
mov dword [esp + 0x9c], 0x870d85f3
mov dword [esp + 0xa0], 0x9bb899f3
mov dword [esp + 0xa4], 0x9ffb9dc5
mov dword [esp + 0xa8], 0x93e591eb
mov dword [esp + 0xac], 0x97ed95f1
mov dword [esp + 0xb0], 0xabd6a9ed
mov dword [esp + 0xb4], 0xaf8cadd3
mov dword [esp + 0xb8], 0xa3d7a1fb
mov dword [esp + 0xbc], 0xa7d1a5c0
mov dword [esp + 0xc0], 0xbbcdb92d
mov dword [esp + 0xc4], 0xbfdbbdce
mov dword [esp + 0xc8], 0xb3dcb1c1
mov dword [esp + 0xcc], 0xb7c6b5e2
mov dword [esp + 0xd0], 0xcbaec9c7
mov dword [esp + 0xd4], 0xcfb0cdb1
mov dword [esp + 0xd8], 0xc3b5c1a9
mov dword [esp + 0xdc], 0xc78fc5ae
mov dword [esp + 0xe0], 0xdb91d9f3
mov dword [esp + 0xe4], 0xdf99dded
mov dword [esp + 0xe8], 0xd396d198
mov dword [esp + 0xec], 0xd7e0d5e2
mov dword [esp + 0xf0], 0xebdde9e5
mov dword [esp + 0xf4], 0xefdfedd9
mov dword [esp + 0xf8], 0xe384e1dd
mov dword [esp + 0xfc], 0xe7a6e5d7
mov dword [esp + 0x100], 0xfbb0f9ae
mov dword [esp + 0x104], 0xffccfdb9
mov dword [esp + 0x108], 0xf3c3f1ce
mov dword [esp + 0x10c], 0xf7c0f5c2
mov dword [esp + 0x110], 0xb3a09b4
mov dword [esp + 0x114], 0xf3a0d49
mov dword [esp + 0x118], 0x3490138
mov dword [esp + 0x11c], 0x7680534
mov word [esp + 0x120], 0x1906
lea eax, [esp + 0x120]
mov dword [eax + 9], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x880], 0
mov eax, dword [esp + 0x880]
cmp eax, 0xac
ja 0x41cfab
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x880]
mov ecx, dword [esp + 0x880]
movzx ecx, byte [esp + ecx + 0x80]
mov edx, 0x90
sub edx, eax
add eax, 0xdc903c6f
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa80], edx
mov eax, dword [esp + 0xa80]
add al, 0xf7
mov ecx, dword [esp + 0x880]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x880]
mov eax, dword [esp + 0x880]
cmp eax, 0xad
jb 0x41cf50
lea edi, [esp + 0xf24]
lea eax, [esp + 0x80]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x120]
mov ecx, 1
lea edi, [esp + 0xfc4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x80], 0x6bf36dd9
mov dword [esp + 0x84], 0x67e869f7
mov dword [esp + 0x88], 0x63ed65f7
mov dword [esp + 0x8c], 0x5fc461f3
mov dword [esp + 0x90], 0x5bfe5dd0
mov dword [esp + 0x94], 0x57cf59f3
mov dword [esp + 0x98], 0x53ce55c6
mov dword [esp + 0x9c], 0x4fc551c3
mov dword [esp + 0xa0], 0x4baa4dc3
mov dword [esp + 0xa4], 0x47ea49fa
mov dword [esp + 0xa8], 0x43fd45e0
mov dword [esp + 0xac], 0x3fb041cd
mov dword [esp + 0xb0], 0x3ba73db2
mov dword [esp + 0xb4], 0x37ba39aa
mov dword [esp + 0xb8], 0x33af359e
mov dword [esp + 0xbc], 0x2fa131be
mov dword [esp + 0xc0], 0x2bb92db5
mov dword [esp + 0xc4], 0x278229ba
mov dword [esp + 0xc8], 0x23bb258f
mov dword [esp + 0xcc], 0x1f8221b2
mov dword [esp + 0xd0], 0x1b911d8f
mov dword [esp + 0xd4], 0x17f61997
mov dword [esp + 0xd8], 0x138f15a1
mov dword [esp + 0xdc], 0xf81119f
mov dword [esp + 0xe0], 0xb910dad
mov dword [esp + 0xe4], 0x7940991
mov dword [esp + 0xe8], 0x3e2059f
mov dword [esp + 0xec], 0xff7301af
mov dword [esp + 0xf0], 0xfb75fd62
mov dword [esp + 0xf4], 0xf779f971
mov dword [esp + 0xf8], 0xf36ff578
mov dword [esp + 0xfc], 0xef4af165
mov dword [esp + 0x100], 0xeb64ed5c
mov dword [esp + 0x104], 0xe77ce97b
mov dword [esp + 0x108], 0xe376e57d
mov dword [esp + 0x10c], 0xdf51e17d
mov dword [esp + 0x110], 0xdb69dd78
mov dword [esp + 0x114], 0xd75ad955
mov dword [esp + 0x118], 0xd341d540
mov dword [esp + 0x11c], 0xcf59d143
mov dword [esp + 0x120], 0xcb03cd68
mov dword [esp + 0x124], 0xc70dc907
mov dword [esp + 0x128], 0xc37dc509
mov dword [esp + 0x12c], 0xbf04c17a
mov dword [esp + 0x130], 0xbb76bd6c
mov dword [esp + 0x134], 0xb779b969
mov dword [esp + 0x138], 0xb363b565
mov dword [esp + 0x13c], 0xaf32b161
mov dword [esp + 0x140], 0xab14ad63
mov dword [esp + 0x144], 0xa76ea960
mov dword [esp + 0x148], 0xa372a565
mov dword [esp + 0x14c], 0x9f4fa170
mov dword [esp + 0x150], 0x9b569d4c
mov dword [esp + 0x154], 0x97589926
mov dword [esp + 0x158], 0x93589555
mov dword [esp + 0x15c], 0x8f45915a
mov dword [esp + 0x160], 0x8b2e8d46
mov word [esp + 0x164], 0x8988
mov dword [esp + 0x16a], 0
mov dword [esp + 0x166], 0
mov dword [esp + 0x880], 0
mov eax, dword [esp + 0x880]
cmp eax, 0xed
ja 0x41d2eb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x880]
mov ecx, dword [esp + 0x880]
movzx ecx, byte [esp + ecx + 0x80]
mov edx, 0xed
sub edx, eax
add eax, 0xf123ee12
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa80], edx
mov eax, dword [esp + 0xa80]
add al, 0x82
mov ecx, dword [esp + 0x880]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x880]
mov eax, dword [esp + 0x880]
cmp eax, 0xee
jb 0x41d290
lea edi, [esp + 0xfc6]
lea eax, [esp + 0x80]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x164]
mov ecx, 1
lea edi, [esp + 0x10aa]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x80], 0xf31bcd01
mov dword [esp + 0x84], 0xf760f117
mov dword [esp + 0x88], 0xfb6df567
mov dword [esp + 0x8c], 0xff14f96b
mov dword [esp + 0x90], 0xe31efd68
mov dword [esp + 0x94], 0xe70ce113
mov dword [esp + 0x98], 0xeb03e50e
mov dword [esp + 0x9c], 0xef0be90f
mov dword [esp + 0xa0], 0x9343ed10
mov dword [esp + 0xa4], 0x97449147
mov dword [esp + 0xa8], 0x9b669544
mov dword [esp + 0xac], 0x9f0b996b
mov dword [esp + 0xb0], 0x836e9d08
mov dword [esp + 0xb4], 0x87158113
mov dword [esp + 0xb8], 0x8b76856b
mov dword [esp + 0xbc], 0x8f188978
mov dword [esp + 0xc0], 0xb3588d1f
mov dword [esp + 0xc4], 0xb75ab159
mov dword [esp + 0xc8], 0xbb2db551
mov dword [esp + 0xcc], 0xbf4db944
mov dword [esp + 0xd0], 0xa336bd29
mov dword [esp + 0xd4], 0xa735a14c
mov dword [esp + 0xd8], 0xab45a537
mov dword [esp + 0xdc], 0xaf77a954
mov dword [esp + 0xe0], 0x5389ad7b
mov dword [esp + 0xe4], 0x57915185
mov dword [esp + 0xe8], 0x5b90559e
mov dword [esp + 0xec], 0x5f8a5988
mov dword [esp + 0xf0], 0x43955d8d
mov dword [esp + 0xf4], 0x47974191
mov dword [esp + 0xf8], 0x4bae4595
mov dword [esp + 0xfc], 0x4f88499f
mov dword [esp + 0x100], 0x73aa4d94
mov dword [esp + 0x104], 0x77a671b1
mov dword [esp + 0x108], 0x7bab75a4
mov dword [esp + 0x10c], 0x7faa79a8
mov dword [esp + 0x110], 0x63b47dba
mov dword [esp + 0x114], 0x67bc61a1
mov dword [esp + 0x118], 0x6bb165be
mov dword [esp + 0x11c], 0x6f9269b2
mov word [esp + 0x120], 0x6d6c
lea eax, [esp + 0x120]
mov byte [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x880], 0
mov eax, dword [esp + 0x880]
cmp eax, 0xaa
ja 0x41d56b
nop
nop
mov eax, dword [esp + 0x880]
mov ecx, dword [esp + 0x880]
movzx ecx, byte [esp + ecx + 0x80]
mov edx, 0x61
sub edx, eax
add eax, 0x50b9fe9e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa80], edx
mov eax, dword [esp + 0xa80]
add al, 0xae
mov ecx, dword [esp + 0x880]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x880]
mov eax, dword [esp + 0x880]
cmp eax, 0xab
jb 0x41d510
lea edi, [esp + 0xe82]
lea eax, [esp + 0x80]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x120]
mov ecx, 1
lea edi, [esp + 0xf22]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x80], 0xb8b15a5
mov dword [esp + 0x84], 0xf9e09af
mov dword [esp + 0x88], 0x3990d9f
mov dword [esp + 0x8c], 0x79a0193
mov dword [esp + 0x90], 0x7ba80592
mov dword [esp + 0x94], 0x7fe279cb
mov dword [esp + 0x98], 0x73e37de4
mov dword [esp + 0x9c], 0x77eb71d7
mov dword [esp + 0xa0], 0x6b2375da
mov dword [esp + 0xa4], 0x6f3a693e
mov dword [esp + 0xa8], 0x63c06d3e
mov dword [esp + 0xac], 0x67eb61d3
mov dword [esp + 0xb0], 0x5bf865f2
mov dword [esp + 0xb4], 0x5fc959cb
mov dword [esp + 0xb8], 0x53f05dc3
mov dword [esp + 0xbc], 0x57c651e2
mov dword [esp + 0xc0], 0x4bce55c7
mov dword [esp + 0xc4], 0x4fd449d5
mov dword [esp + 0xc8], 0x43d94dd5
mov dword [esp + 0xcc], 0x47f141ee
mov dword [esp + 0xd0], 0xbbd045cd
mov dword [esp + 0xd4], 0xbf29b926
mov dword [esp + 0xd8], 0xb321bd2f
mov dword [esp + 0xdc], 0xb7ffb11e
mov dword [esp + 0xe0], 0xabfdb5e3
mov dword [esp + 0xe4], 0xafeda9e1
mov dword [esp + 0xe8], 0xa316ad14
mov dword [esp + 0xec], 0xa7f4a1f2
mov dword [esp + 0xf0], 0x9bf1a5f1
mov dword [esp + 0xf4], 0x9fcf99cd
mov dword [esp + 0xf8], 0x93389dc9
mov dword [esp + 0xfc], 0x97d691c7
mov dword [esp + 0x100], 0x8bdc95de
mov dword [esp + 0x104], 0x8fd889cd
mov dword [esp + 0x108], 0x83db8dde
mov dword [esp + 0x10c], 0x87d481d2
mov dword [esp + 0x110], 0xfbd285c0
mov dword [esp + 0x114], 0xffb2f9bd
mov dword [esp + 0x118], 0xf3b5fdb4
mov dword [esp + 0x11c], 0xf75cf1b8
mov word [esp + 0x120], 0xf5f6
lea eax, [esp + 0x120]
mov dword [eax + 9], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x880], 0
mov eax, dword [esp + 0x880]
cmp eax, 0xac
ja 0x41d7fb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x880]
mov ecx, dword [esp + 0x880]
movzx ecx, byte [esp + ecx + 0x80]
mov edx, 0xd2
sub edx, eax
add eax, 0x5dd2862d
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa80], edx
mov eax, dword [esp + 0xa80]
add al, 0xc5
mov ecx, dword [esp + 0x880]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x880]
mov eax, dword [esp + 0x880]
cmp eax, 0xad
jb 0x41d7a0
lea edx, [esp + 0x114e]
lea eax, [esp + 0x80]
mov edi, edx
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x120]
mov ecx, 1
lea edi, [esp + 0x11ee]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x80], 0x937b9161
mov dword [esp + 0x84], 0x9f0e9d7f
mov dword [esp + 0x88], 0x9b05990f
mov dword [esp + 0x8c], 0x876a850b
mov dword [esp + 0x90], 0x8364811a
mov dword [esp + 0x94], 0x8f628d73
mov dword [esp + 0x98], 0x8b638960
mov dword [esp + 0x9c], 0xb75bb567
mov dword [esp + 0xa0], 0xb363b152
mov dword [esp + 0xa4], 0xbf6abd6d
mov dword [esp + 0xa8], 0xbb5cb96e
mov dword [esp + 0xac], 0xa73ba54b
mov dword [esp + 0xb0], 0xa334a13a
mov dword [esp + 0xb4], 0xaf3dad33
mov dword [esp + 0xb8], 0xab4ca93b
mov dword [esp + 0xbc], 0x57c6555a
mov dword [esp + 0xc0], 0x53be51c7
mov dword [esp + 0xc4], 0x5fc85db9
mov dword [esp + 0xc8], 0x5bc559b1
mov dword [esp + 0xcc], 0x47b545be
mov dword [esp + 0xd0], 0x43dc41d9
mov dword [esp + 0xd4], 0x4fdd4dd6
mov dword [esp + 0xd8], 0x4bdd49df
mov dword [esp + 0xdc], 0x77af75ae
mov dword [esp + 0xe0], 0x73a971ab
mov dword [esp + 0xe4], 0x7fb17dad
mov dword [esp + 0xe8], 0x7bb679b0
mov dword [esp + 0xec], 0x67b865aa
mov dword [esp + 0xf0], 0x63bd61b5
mov dword [esp + 0xf4], 0x6fbf6db1
mov dword [esp + 0xf8], 0x6b8469bd
mov dword [esp + 0xfc], 0x17d615b7
mov dword [esp + 0x100], 0x13c811ce
mov dword [esp + 0x104], 0x1fcc1dd1
mov dword [esp + 0x108], 0x1bcb19ce
mov dword [esp + 0x10c], 0x7d805ca
mov dword [esp + 0x110], 0x3d201c4
mov dword [esp + 0x114], 0xfd20dc1
mov dword [esp + 0x118], 0xbd109d0
mov dword [esp + 0x11c], 0x37d035d4
mov word [esp + 0x120], 0x3136
mov dword [esp + 0x126], 0
mov dword [esp + 0x122], 0
mov dword [esp + 0x880], 0
mov eax, dword [esp + 0x880]
cmp eax, 0xa9
ja 0x41da8b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x880]
mov ecx, dword [esp + 0x880]
movzx ecx, byte [esp + ecx + 0x80]
mov esi, 0xbc
sub esi, eax
add eax, 0xd845fc43
xor esi, eax
and esi, ecx
xor esi, eax
mov dword [esp + 0xa80], esi
mov eax, dword [esp + 0xa80]
add al, 0x2b
mov ecx, dword [esp + 0x880]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x880]
mov eax, dword [esp + 0x880]
cmp eax, 0xaa
jb 0x41da30
mov dword [esp + 0x4c], ebx
lea eax, [esp + 0x10ac]
lea esi, [esp + 0x80]
mov edi, eax
mov ecx, 0x28
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x120]
mov ecx, 1
lea edi, [esp + 0x114c]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0xf24]
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0xfc6]
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0xe82]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x38], 0
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x43d5f4]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x80], 0xead5d4d7
lea ecx, [esp + 0x120]
mov byte [ecx - 0x94], 0
mov dword [ecx - 0x98], 0
mov dword [ecx - 0x9c], 0
mov dword [esp + 0x880], 0
mov ecx, dword [esp + 0x880]
cmp ecx, 0xc
ja 0x41dbbb
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x880]
mov edx, dword [esp + 0x880]
movzx edx, byte [esp + edx + 0x80]
mov esi, 0x62
sub esi, ecx
add ecx, 0xda4ff89d
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xa80], esi
mov ecx, dword [esp + 0xa80]
add cl, 0xb5
mov edx, dword [esp + 0x880]
mov byte [esp + edx + 0x80], cl
inc dword [esp + 0x880]
mov ecx, dword [esp + 0x880]
cmp ecx, 0xd
jb 0x41db60
mov ecx, dword [0x44132c]
test ecx, ecx
mov esi, dword [esp + 0x64]
je 0x41dc00
mov edx, dword [esp + 0x80]
xor edi, edi
mov ebx, dword [0x441330]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x41dbf0
inc edi
cmp ecx, edi
jne 0x41dbe0
jmp 0x41dc00
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x41dc24
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esp + 0x4c]
jmp dword [0x43d664]
push ebx
call fcn.004090b0
add esp, 4
inc esi
xor eax, eax
cmp esi, dword [esp + 0x48]
setb al
jmp dword [eax*4 + 0x43d5c4]
push eax
push 1
push dword [0x441334]
push ecx
call fcn.00433920
add esp, 0x10
mov ebx, dword [esp + 0x4c]
jmp dword [0x43d664]
add edi, edx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
mov edx, dword [esp + 4]
je 0x41dc78
cmp eax, edx
jae 0x41dc78
movzx esi, cx
cmp esi, 0x800
mov ecx, 3
sbb ecx, 0
mov edx, 1
cmp esi, 0x80
jb 0x41dc40
mov edx, ecx
jmp 0x41dc40
lea eax, [edi + 1]
mov dword [esp + 0x10], eax
push eax
mov esi, edx
call fcn.004090a0
add esp, 4
mov ebx, eax
lea eax, [esp + 0x11f0]
cmp eax, esi
setb al
mov dword [esp + 0x14], ebx
mov ecx, edi
mov dword [esp + 0xc], edi
test edi, edi
jle 0x41dd77
mov ebx, dword [esp + 0x14]
test al, al
je 0x41dd77
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
add eax, ebx
mov dword [esp + 8], eax
add dword [esp + 0x10], ebx
lea edx, [esp + 0x11f2]
nop
movzx ecx, word [edx - 2]
test cx, cx
je 0x41dd77
cmp cx, 0x7f
ja 0x41dcf0
mov byte [ebx], cl
mov edi, 1
jmp 0x41dd60
mov eax, ebx
not eax
add eax, dword [esp + 0x10]
movzx esi, cx
cmp eax, 2
jb 0x41dd30
cmp esi, 0x7ff
ja 0x41dd30
mov eax, ecx
shr eax, 6
add al, 0xc0
mov byte [ebx], al
and cl, 0x3f
or cl, 0x80
mov byte [ebx + 1], cl
mov edi, 2
jmp 0x41dd60
xor edi, edi
cmp eax, 3
jb 0x41dd60
mov eax, esi
shr eax, 0xc
or al, 0xe0
mov byte [ebx], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ebx + 1], al
and cl, 0x3f
or cl, 0x80
mov byte [ebx + 2], cl
mov edi, 3
nop
nop
nop
nop
nop
nop
add ebx, edi
cmp ebx, dword [esp + 8]
jae 0x41dd77
lea eax, [edx + 2]
cmp edx, dword [esp + 4]
mov edx, eax
jb 0x41dcd0
mov byte [ebx], 0
mov dword [esp + 0x80], 0xa7a4a589
mov dword [esp + 0x84], 0xa3afaca5
mov dword [esp + 0x88], 0xa6bebcb9
mov dword [esp + 0x8c], 0xaba3987b
mov dword [esp + 0x90], 0xb6b5b4b2
mov dword [esp + 0x94], 0x8eae9173
mov dword [esp + 0x98], 0x80888a84
mov dword [esp + 0x9c], 0x9f944b97
mov word [esp + 0xa0], 0x159a
mov dword [esp + 0xa2], 0
mov dword [esp + 0xa5], 0
mov dword [esp + 0x880], 0
mov eax, dword [esp + 0x880]
cmp eax, 0x28
ja 0x41de69
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x880]
mov ecx, dword [esp + 0x880]
movzx ecx, byte [esp + ecx + 0x80]
mov edx, 0x76
sub edx, eax
add eax, 0x5c9c3789
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa80], edx
mov eax, dword [esp + 0xa80]
add al, 0x41
mov ecx, dword [esp + 0x880]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x880]
mov eax, dword [esp + 0x880]
cmp eax, 0x29
jb 0x41de10
lea eax, [esp + 0x80]
mov ecx, dword [ebp + 8]
push dword [esp + 0xc]
mov esi, dword [esp + 0x18]
push esi
push eax
call fcn.00409d00
mov dword [esp + 0xc], eax
jmp dword [0x43d66c]
jmp dword [0x43d674]
push esi
call fcn.004090b0
add esp, 4
nop
nop
nop
nop
nop
push esi
call fcn.004090b0
add esp, 4
jmp dword [0x43d680]
mov eax, dword [esp + 0xc]
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret