Function at 0x41ee0b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2f8
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x140], 0x7fc6d9d7
mov byte [esp + 0x144], 0x48
mov dword [esp + 0x145], 0
xor ecx, ecx
nop
nop
nop
mov edx, ecx
add dl, 0x93
xor dl, byte [esp + ecx + 0x140]
add dl, 0x21
mov byte [esp + ecx + 0x140], dl
inc ecx
cmp ecx, 9
jne 0x41e990
mov edi, dword [ebx]
movzx ecx, byte [esp + 0x140]
test cl, cl
je 0x41e9db
lea edx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41e9d0
mov byte [edi], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
lea ecx, [esp + 0x40]
lea edx, [esp + 0x50]
lea esi, [esp + 0x30]
push ecx
push edx
push esi
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.00420f80
add esp, 0x18
test al, al
je 0x41eaad
mov dword [esp + 0x140], 0xbbeb1d1c
mov byte [esp + 0x144], 0xb0
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
lea eax, [esp + 0x140]
mov ecx, 0xe2
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [eax]
lea edx, [ecx - 0x60412f00]
or edx, esi
and esi, ecx
not edx
or edx, esi
mov esi, edx
and esi, 1
or edx, 1
add edx, esi
add dl, 0x6e
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0xda
jne 0x41ea60
movzx eax, byte [esp + 0x140]
test al, al
je 0x41eaba
lea ecx, [esp + 0x141]
mov edx, edi
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41eaa0
jmp 0x41eabc
mov dword [esp + 8], 0
jmp 0x41fd49
mov edx, edi
mov edi, edx
mov byte [edx], 0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x134], ecx
mov dword [esp + 0x130], eax
mov dword [esp + 0x138], edx
mov dword [esp + 0x140], 0xb6baaa6f
mov dword [esp + 0x144], 0x2f4eb154
mov dword [esp + 0x148], 0x11212ed3
mov dword [esp + 0x14c], 0x141b1a19
mov dword [esp + 0x150], 0x26391bc4
mov dword [esp + 0x154], 0xf26203a
mov dword [esp + 0x158], 0x80f0e0d
mov dword [esp + 0x15c], 0x3803dfd2
mov dword [esp + 0x160], 0xde3dce31
mov dword [esp + 0x164], 0xf4cc2a39
mov dword [esp + 0x168], 0x1233e000
mov dword [esp + 0x16c], 0x390c13f6
mov dword [esp + 0x170], 0x38eafe24
mov dword [esp + 0x174], 0xe0ff3e3e
mov dword [esp + 0x178], 0xe11326e5
mov dword [esp + 0x17c], 0x242b2a29
mov dword [esp + 0x180], 0xf605fbf1
mov dword [esp + 0x184], 0xdc2f0823
mov dword [esp + 0x188], 0xd8e103ec
mov dword [esp + 0x18c], 0xdbdbdad9
mov dword [esp + 0x190], 0xd0d7d6ee
mov dword [esp + 0x194], 0x6e1dad1
mov dword [esp + 0x198], 0xc5dee2c2
mov dword [esp + 0x19c], 0xf7dafbfe
mov dword [esp + 0x1a0], 0xc0c7c6c5
mov dword [esp + 0x1a4], 0xded2ca15
mov dword [esp + 0x1a8], 0x23fd2efd
mov dword [esp + 0x1ac], 0xf4f7d8f1
mov dword [esp + 0x1b0], 0xf0f7f6f5
mov dword [esp + 0x1b4], 0xd8f3f2f1
mov dword [esp + 0x1b8], 0xea3922e1
mov dword [esp + 0x1bc], 0xe4ebeae9
mov dword [esp + 0x1c0], 0x3dcbc433
mov dword [esp + 0x1c4], 0x9136eee1
mov byte [esp + 0x1c8], 0xdc
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1c9], 0
mov eax, 0x1ba5de39
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x1ba5dcf9]
lea ecx, [edx + 0x20000000]
and ecx, eax
or edx, eax
not ecx
and ecx, edx
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 0xe2
mov byte [esp + eax - 0x1ba5dcf9], cl
inc eax
cmp eax, 0x1ba5dec9
jne 0x41ec80
mov dword [esp + 0x58], 0x98564242
mov dword [esp + 0x5c], 0xb8eb7530
mov dword [esp + 0x60], 0x4fb4e828
mov dword [esp + 0x64], 0x6b6a6564
mov dword [esp + 0x68], 0x67da6aed
mov dword [esp + 0x6c], 0x5b43e424
mov dword [esp + 0x70], 0x77767170
mov dword [esp + 0x74], 0x334afc3c
mov dword [esp + 0x78], 0xdc16bdff
mov dword [esp + 0x7c], 0x8f8ebade
mov dword [esp + 0x80], 0x8b8a8d8c
mov dword [esp + 0x84], 0x87868988
mov dword [esp + 0x88], 0xc8061212
mov dword [esp + 0x8c], 0xda1a3560
mov dword [esp + 0x90], 0x52d91982
mov dword [esp + 0x94], 0x5b5a5554
mov dword [esp + 0x98], 0x177e2810
mov dword [esp + 0x9c], 0xa3c619d5
mov dword [esp + 0xa0], 0xa71f2ce8
mov dword [esp + 0xa4], 0xc3aaa5a4
mov dword [esp + 0xa8], 0xafaea980
mov dword [esp + 0xac], 0xf93de5ac
mov dword [esp + 0xb0], 0xe539f9d0
mov dword [esp + 0xb4], 0x2135fddc
mov dword [esp + 0xb8], 0xbfbeb9b8
mov dword [esp + 0xbc], 0xe7c630f0
mov dword [esp + 0xc0], 0x970fc880
mov dword [esp + 0xc4], 0x8b004ecc
mov dword [esp + 0xc8], 0x8f8e8988
mov dword [esp + 0xcc], 0xdb928d8c
mov dword [esp + 0xd0], 0x8295af19
mov dword [esp + 0xd4], 0x9b9a9594
mov dword [esp + 0xd8], 0xfbd216d0
mov dword [esp + 0xdc], 0xc293d59c
mov byte [esp + 0xe0], 0xe0
mov byte [esp + 0xe5], 0
mov dword [esp + 0xe1], 0
mov eax, 0xba
mov ecx, 0x45
movzx esi, byte [esp + eax - 0x62]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0x5e
mov byte [esp + eax - 0x62], dl
inc eax
dec ecx
cmp eax, 0x148
jne 0x41ee30
lea ebx, [esp + 0x140]
lea eax, [esp + 0x58]
lea ecx, [esp + 0x130]
push ebx
push 0x88
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.0043dc80
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
or eax, edx
je 0x41eefd
mov dword [esp + 0x140], 0x19808d7c
mov byte [esp + 0x144], 0x1c
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
mov eax, 0x7b
nop
nop
nop
nop
movzx edx, byte [ebx]
lea ecx, [eax - 0x1d079500]
or ecx, edx
and edx, eax
not ecx
or ecx, edx
mov edx, ecx
and edx, 0x6b
xor ecx, 0x6b
lea ecx, [ecx + edx*2]
inc cl
mov byte [ebx], cl
inc ebx
dec eax
cmp eax, 0x73
jne 0x41eeb0
movzx eax, byte [esp + 0x140]
test al, al
mov esi, edi
je 0x41ef0f
lea ecx, [esp + 0x141]
mov ebx, dword [ebp + 0xc]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41eef0
jmp 0x41ef12
mov dword [esp + 8], 0
mov ebx, dword [ebp + 0xc]
mov esi, edi
jmp 0x41fd47
mov ebx, dword [ebp + 0xc]
mov byte [esi], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.0043dc80
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x41fd3f
mov edi, esi
mov dword [esp + 0x140], 0x9bf8f8f6
mov byte [esp + 0x144], 0x60
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
mov eax, 0x99
mov ecx, 0x66
nop
nop
nop
movzx edx, byte [esp + eax + 0xa7]
mov esi, eax
or esi, edx
not edx
or edx, ecx
and edx, esi
add dl, 3
mov byte [esp + eax + 0xa7], dl
inc eax
dec ecx
cmp eax, 0xa5
jne 0x41ef80
movzx eax, byte [esp + 0x140]
test al, al
je 0x41efcd
lea ecx, [esp + 0x141]
mov esi, edi
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41efc0
jmp 0x41efcf
mov esi, edi
mov byte [esi], 0
lea eax, [esp + 0x120]
lea edx, [esp + 0x44]
lea ecx, [esp + 0x30]
push 0
push 8
push eax
push edx
call fcn.0043d1f0
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x48]
je 0x41fd3f
mov dword [esp + 4], esi
mov dword [esp + 0x140], 0xb92fbb17
mov dword [esp + 0x144], 0xbd5abf23
mov dword [esp + 0x148], 0xb129b325
mov dword [esp + 0x14c], 0xb52db762
mov dword [esp + 0x150], 0xa931ab3c
lea eax, [esp + 0x154]
mov dword [esp], eax
mov word [esp + 0x154], 0xafa8
mov dword [esp + 0x156], 0
mov byte [esp + 0x15a], 0
mov ecx, 0x2c1d32df
mov edx, 0xd3e2cd20
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x2c1d319f]
mov esi, ebx
and esi, ecx
mov edi, esi
and edi, 2
mov eax, esi
or esi, 2
imul esi, edi
xor edi, 2
and eax, 0xfffffffd
imul eax, edi
add esi, eax
mov eax, esi
xor eax, ecx
and esi, edx
add esi, esi
sub eax, esi
add al, bl
add al, 0xa5
mov byte [esp + ecx - 0x2c1d319f], al
inc ecx
dec edx
cmp ecx, 0x2c1d32fa
jne 0x41f070
lea edi, [esp + 0x2de]
lea eax, [esp + 0x140]
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x2f2]
mov ecx, 1
mov eax, dword [esp]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x140], 0x99060531
mov byte [esp + 0x144], 0x9c
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xa4
xor cl, byte [esp + eax + 0x140]
add cl, 0xcc
mov byte [esp + eax + 0x140], cl
inc eax
cmp eax, 0xa
jne 0x41f110
movzx eax, byte [esp + 0x140]
test al, al
mov esi, dword [esp + 4]
je 0x41f15d
lea ecx, [esp + 0x141]
mov ebx, dword [ebp + 0xc]
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 0x41f150
jmp 0x41f160
mov ebx, dword [ebp + 0xc]
mov byte [esi], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x108], ecx
cmp eax, ecx
je 0x41fd3f
mov dword [esp + 8], 0
lea edi, [esp + 0x30]
jmp 0x41f1c3
push dword [esp + 0x2c]
call fcn.00404940
add esp, 4
mov eax, dword [esp + 8]
and al, 1
or al, bl
mov dword [esp + 8], eax
lea edi, [esp + 0x30]
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x41fdec
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0040c880
add esp, 0xc
xor ebx, ebx
jmp 0x41f20e
mov esi, dword [esp + 4]
inc ebx
cmp ebx, 0xb
je 0x41f440
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x38]
push dword [esp + 0x40]
call fcn.0043d080
test eax, eax
js 0x41f204
mov dword [esp], ebx
cmp byte [esp + 0x210], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x211], 0
mov byte [esp + 0xc], cl
sete al
xor al, 0x31
mov byte [esp + 0xd], al
cmp byte [esp + 0x212], 0
sete al
xor al, 0x31
mov byte [esp + 0xe], al
cmp byte [esp + 0x2d0], 0
sete al
xor al, 0x31
mov byte [esp + 0xf], al
mov word [esp + 0x10], 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 + 0xd]
inc eax
test cl, cl
jne 0x41f290
mov ebx, esi
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x212]
test cl, cl
jne 0x41f420
cmp byte [esp + 0x210], 0
mov edi, dword [esp + 0x180]
mov esi, dword [esp + 0x184]
jne 0x41f2d5
mov edx, edi
or edx, esi
je 0x41f420
cmp byte [esp + 0x2d0], 0
jne 0x41f2ea
xor edi, 1
or edi, esi
je 0x41f420
add ebx, eax
mov dword [esp + 0x58], 0x41ffe8f3
mov byte [esp + 0x5c], 0x54
lea eax, [esp + 0x5d]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0xee
mov ecx, 0x11
movzx esi, byte [esp + eax - 0x96]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0x5a
mov byte [esp + eax - 0x96], dl
inc eax
dec ecx
cmp eax, 0xf6
jne 0x41f310
movzx eax, byte [esp + 0x58]
test al, al
je 0x41f34b
lea ecx, [esp + 0x59]
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f340
mov dword [esp + 4], ebx
mov byte [ebx], 0
mov dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x58], 0xff676980
mov dword [esp + 0xe8], 0xb08f8e8d
mov eax, 0xd825ce5d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x27da328b]
xor ecx, eax
mov edx, ecx
and edx, 0x2c
mov esi, ecx
and esi, 2
mov edi, esi
xor edi, 2
imul edi, edx
or edx, 2
imul edx, esi
xor ecx, 0x2e
add ecx, edi
add ecx, edx
inc cl
mov byte [esp + eax + 0x27da328b], cl
inc eax
cmp eax, 0xd825ce61
jne 0x41f380
mov eax, dword [0x44f6fc]
test eax, eax
lea edi, [esp + 0x30]
mov ebx, dword [esp]
je 0x41f200
mov ecx, dword [esp + 0xe8]
xor edx, edx
mov esi, dword [0x44f700]
nop
nop
nop
cmp dword [esi + edx*8], 0x3568c09b
je 0x41f3f3
inc edx
cmp eax, edx
jne 0x41f3e0
jmp 0x41f200
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x41f200
lea ecx, [esp + 0x58]
push ecx
push 0
push 2
push dword [0x44f704]
push eax
call fcn.0043f170
add esp, 0x14
jmp 0x41f200
mov esi, ebx
add esi, eax
lea edi, [esp + 0x30]
test cl, cl
jne 0x41f450
jmp 0x41f1ac
movzx ecx, byte [esp + 0x212]
test cl, cl
je 0x41f1ac
call fcn.00404b00
mov dword [esp + 0x2c], eax
push eax
call fcn.00404730
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x58], 0x9bf9c5ff
mov byte [esp + 0x5c], 0x60
lea eax, [esp + 0x5d]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0xcaff1999
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x3500e6bf]
xor ecx, eax
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 2
mov byte [esp + eax + 0x3500e6bf], cl
inc eax
cmp eax, 0xcaff19a1
jne 0x41f490
movzx eax, byte [esp + 0x58]
test al, al
je 0x41f4db
lea ecx, [esp + 0x59]
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 0x41f4d0
mov dword [esp + 4], esi
mov byte [esi], 0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx ebx, word [eax + ecx]
movzx esi, word [esp + ecx + 0x2de]
test bx, bx
je 0x41f509
add ecx, 2
cmp bx, si
je 0x41f4f0
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
xor edi, edi
mov ecx, eax
or ecx, edx
je 0x41f570
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x30]
push 0
push 0
push 0x40
lea eax, [esp + 0x64]
push eax
push edx
push dword [esp + 0x3c]
call fcn.0043d080
test eax, eax
js 0x41f570
xor eax, eax
cmp bx, si
sete al
lea ecx, [esp + 0x30]
lea edx, [esp + 0x58]
push eax
push dword [esp + 4]
call fcn.00421a10
add esp, 8
mov ebx, eax
jmp 0x41f572
xor ebx, ebx
mov dword [esp + 0x58], 0xe778404b
mov byte [esp + 0x5c], 0xe8
lea eax, [esp + 0x5d]
mov byte [eax + 4], 0
mov dword [eax], 0
nop
nop
nop
movzx ecx, byte [esp + edi + 0x58]
mov edx, edi
and edx, 4
xor edx, 0xd4bbb634
mov eax, edi
and eax, 0xb
sub eax, edx
mov edx, ecx
not edx
lea ecx, [ecx + edx*2]
mov esi, 0xfffffffe
sub esi, ecx
mov ecx, 0x38e43ff4
sub ecx, eax
or ecx, esi
add eax, 0xb
or eax, edx
and eax, ecx
lea ecx, [eax + eax]
not ecx
add ecx, eax
mov eax, ecx
and eax, 1
or ecx, 1
add ecx, eax
add cl, 0xcc
mov byte [esp + edi + 0x58], cl
inc edi
cmp edi, 0xa
jne 0x41f590
movzx eax, byte [esp + 0x58]
test al, al
je 0x41f610
lea ecx, [esp + 0x59]
mov esi, dword [esp + 4]
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 0x41f600
jmp 0x41f614
mov esi, dword [esp + 4]
mov byte [esi], 0
push dword [esp]
call fcn.00404900
add esp, 4
test eax, eax
setne cl
and cl, bl
cmp cl, 1
jne 0x41f190
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
lea edi, [esp + 0x30]
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x124]
push ebx
push edx
push eax
call fcn.0043d080
test eax, eax
mov dword [esp + 4], esi
js 0x41f880
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea esi, [esp + 0x11c]
push esi
push edx
push eax
call fcn.0043d080
test eax, eax
js 0x41f880
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 0x18
lea esi, [esp + 0xf4]
push esi
push edx
push eax
call fcn.0043d080
test eax, eax
js 0x41f880
cmp byte [esp + 0xff], 0
lea eax, [esp + 0xe8]
mov dword [esp], eax
js 0x41f7c2
mov dword [esp + 0xc], 0x9301912d
mov dword [esp + 0x10], 0x9f0c9d31
mov dword [esp + 0x14], 0x9bd699f8
mov dword [esp + 0x18], 0x871a8525
mov dword [esp + 0x1c], 0x83268121
mov word [esp + 0x20], 0x8d8c
lea eax, [esp + 0x22]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x5c
mov ecx, 0xdd632a4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
or esi, 0x67
add esi, eax
mov edx, ecx
and edx, 0x98
or edx, esi
xor dl, byte [esp + ecx - 0xdd63298]
xor dl, 0x67
add dl, 0xcc
mov byte [esp + ecx - 0xdd63298], dl
dec eax
inc ecx
cmp eax, 0x41
jne 0x41f740
movzx esi, word [esp + 0xc]
test si, si
je 0x41f81a
lea eax, [esp + 0xc]
mov edx, dword [esp]
mov ecx, edx
jmp 0x41f79c
movzx esi, word [eax]
test si, si
je 0x41f81f
movzx edi, word [ecx]
test di, di
je 0x41f857
add ecx, 2
add eax, 2
lea ebx, [edx + 2]
cmp di, si
je 0x41f7ba
mov edx, ebx
mov ecx, ebx
je 0x41f790
lea eax, [esp + 0xc]
jmp 0x41f790
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xec]
mov eax, esi
or eax, ebx
je 0x41f880
mov eax, dword [esp + 0xf0]
lea edi, [eax*2 + 2]
inc eax
mov eax, edi
jns 0x41f7f2
mov eax, 0xffffffff
push eax
call fcn.0040c6f0
add esp, 4
lea ecx, [esp + 0x30]
push 0
push 0
push edi
mov dword [esp + 0xc], eax
push eax
push ebx
push esi
call fcn.0043d080
test eax, eax
jns 0x41f6ef
jmp 0x41f880
mov edx, dword [esp]
jmp 0x41f827
lea ebx, [esp + 0x58]
test edx, edx
je 0x41f85b
movzx esi, word [edx + 0x14]
lea ebx, [esp + 0x58]
test si, si
je 0x41f85b
lea eax, [edx + 0x14]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
cmp si, 0x5c
je 0x41fbf4
movzx esi, word [edx + ecx + 0x16]
add ecx, 2
test si, si
jne 0x41f840
lea ebx, [esp + 0x58]
cmp byte [esp + 0xff], 0
jns 0x41f870
push dword [esp]
call fcn.0040c700
add esp, 4
lea edi, [esp + 0x58]
cmp edi, ebx
mov esi, dword [esp + 4]
jne 0x41f98a
mov dword [esp + 0xc], 0x23bc2159
mov dword [esp + 0x10], 0x27b92547
mov dword [esp + 0x14], 0x5bc4593f
mov dword [esp + 0x18], 0x5fca5dc5
mov dword [esp + 0x1c], 0x535251cf
mov dword [esp + 0x20], 0
mov eax, 0xcc75db7
mov edx, 0x6338a248
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0xcc75dab]
lea ebx, [eax - 0x6fffffff]
mov ecx, ebx
or ecx, 0x704d7d72
lea esi, [edx + ecx]
and ebx, 0xd
dec edx
mov dword [esp], edx
mov edx, dword [esp]
and edx, 0xd
xor edx, 0x8c82008d
or edx, ebx
mov ebx, edi
and ebx, 0x72
or ebx, 0xa08201
and edi, 0xffffff8d
xor edi, ebx
mov ebx, eax
sub ebx, ecx
and ebx, 0xf621ab2
mov ecx, esi
and ecx, 0x2000004d
or ecx, ebx
xor ecx, edx
and edx, esi
xor edi, 0x70edff73
or edx, ecx
xor edx, 0x4f6a3ab2
mov ecx, edi
and ecx, edx
add edx, edi
add ecx, ecx
sub edx, ecx
mov ecx, edx
not ecx
and ecx, 9
and edx, 0xf6
sub edx, ecx
add dl, 0x71
mov byte [esp + eax - 0xcc75dab], dl
mov edx, dword [esp]
inc eax
cmp eax, 0xcc75dcf
jne 0x41f8c0
movzx eax, word [esp + 0xc]
lea edi, [esp + 0x58]
mov ebx, edi
test ax, ax
je 0x41f981
lea ecx, [esp + 0xe]
mov ebx, edi
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41f970
mov word [ebx], 0
mov esi, dword [esp + 4]
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
and ecx, 0xfffffffc
lea edi, [esi + ecx]
lea eax, [esp + ecx]
add eax, 0x58
mov ecx, edx
shr ecx, 1
and ecx, 1
mov esi, eax
mov dword [esp], edi
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
mov ebx, edx
je 0x41f9d2
mov ecx, ebx
and ecx, 2
movzx edx, byte [eax + ecx]
mov eax, dword [esp]
mov byte [eax + ecx], dl
push 0xa
push 0xb
lea eax, [esp + 0xf0]
push eax
push dword [esp + 0x34]
call fcn.00421820
add esp, 0x10
mov dword [esp + 0xc], 0xabb7a5de
mov dword [esp + 0x10], 0xd3f2e0f4
mov ecx, 0x83f3cace
nop
movzx esi, byte [esp + ecx + 0x7c0c353e]
xor esi, ecx
mov edx, esi
and edx, 0x79
add edx, edx
xor esi, 6
sub edx, esi
mov byte [esp + ecx + 0x7c0c353e], dl
inc ecx
cmp ecx, 0x83f3cad6
jne 0x41fa00
mov esi, dword [esp + 4]
add esi, ebx
movzx ecx, byte [esp + 0xc]
test cl, cl
je 0x41fa4b
lea edx, [esp + 0xd]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41fa40
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x41fa6b
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 0x41fa60
mov byte [esi], 0xa
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne 0x41fa80
lea ecx, [edi + eax]
add ecx, 0xfffffffe
mov eax, edi
not eax
and eax, ecx
add eax, eax
xor ecx, edi
sub eax, ecx
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x41fab1
mov eax, 0xffffffff
jmp 0x41faba
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040c6f0
add esp, 4
mov ebx, eax
movzx ecx, word [edi]
test cx, cx
je 0x41faf1
add edi, 2
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41fae0
inc esi
mov word [eax], 0x2f
mov dword [esp + 0xc], 0x33843167
mov dword [esp + 0x10], 0x2fa12db1
mov dword [esp + 0x14], 0x2ba6297e
mov dword [esp + 0x18], 0x27aa25ac
mov word [esp + 0x1c], 0x2120
lea ecx, [esp + 0x22]
mov word [ecx], 0
mov dword [ecx - 4], 0
xor ecx, ecx
mov edx, ecx
add dl, 0x8c
xor dl, byte [esp + ecx + 0xc]
add dl, 0x44
mov byte [esp + ecx + 0xc], dl
inc ecx
cmp ecx, 0x18
jne 0x41fb30
add eax, 2
movzx ecx, word [esp + 0x58]
test cx, cx
je 0x41fb71
lea edx, [esp + 0x5a]
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 0x41fb60
mov word [eax], 0
movzx ecx, word [esp + 0xc]
test cx, cx
mov dword [esp + 4], esi
je 0x41fba1
lea edx, [esp + 0xe]
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 0x41fb90
mov word [eax], 0
mov esi, 0xffffffff
push dword [esp + 0x2c]
call fcn.00405760
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + esi + 1], 0
lea esi, [esi + 1]
jne 0x41fbc0
mov ecx, dword [ebp + 8]
push esi
push edi
push ebx
call fcn.0040d130
mov esi, ebx
mov ebx, eax
push edi
call fcn.004057f0
add esp, 4
push esi
call fcn.0040c700
add esp, 4
mov esi, dword [esp + 4]
jmp 0x41f190
lea edx, [esp + 0x58]
mov ebx, edx
test ecx, ecx
je 0x41fca2
sar ecx, 1
mov edi, ecx
mov ebx, edx
and edi, 3
je 0x41fc46
xor esi, esi
mov dword [esp + 0x104], edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [eax]
xor edx, edx
test di, di
setne dl
lea eax, [eax + edx*2]
mov word [ebx], di
mov edi, dword [esp + 0x104]
add ebx, 2
inc esi
cmp edi, esi
jne 0x41fc20
mov edi, ecx
sub edi, esi
jmp 0x41fc48
mov edi, ecx
dec ecx
cmp ecx, 3
jb 0x41fca2
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 edi, 0xfffffffc
jne 0x41fc50
mov word [ebx], 0
cmp byte [esp + 0x2d0], 0
jne 0x41f85b
mov dword [esp + 0xc], 0xf1a5ff9c
mov dword [esp + 0x10], 0xf557f34e
mov dword [esp + 0x14], 0xc94ff745
mov dword [esp + 0x18], 0xcd71cb76
mov dword [esp + 0x1c], 0xc17fcf78
mov dword [esp + 0x20], 0xc3c0
mov eax, 0xd5
mov edi, 0x2a
nop
movzx edx, byte [esp + eax - 0xc9]
mov esi, edi
or esi, edx
not edx
or edx, eax
and edx, esi
mov cl, 0xd6
sub cl, dl
mov byte [esp + eax - 0xc9], cl
inc eax
dec edi
cmp eax, 0xed
jne 0x41fcf0
movzx eax, word [esp + 0xc]
test ax, ax
je 0x41fd35
lea ecx, [esp + 0xe]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41fd24
mov word [ebx], 0
jmp 0x41f85b
mov dword [esp + 8], 0
mov edi, esi
lea ecx, [esp + 0x30]
call fcn.0043c900
mov dword [esp + 0x140], 0x872e331f
mov byte [esp + 0x144], 0xb8
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
mov eax, 0x1f
mov ecx, 0xe0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x121]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0x65
mov byte [esp + eax + 0x121], dl
inc eax
dec ecx
cmp eax, 0x29
jne 0x41fd90
movzx eax, byte [esp + 0x140]
test al, al
je 0x41fddb
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fdd0
mov byte [edi], 0
mov dword [ebx], edi
mov eax, dword [esp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 8]
and cl, 1
mov dword [esp + 8], ecx
test eax, eax
je 0x41fe22
cmp eax, dword [esp + 0x48]
mov ebx, dword [ebp + 0xc]
je 0x41fd47
push eax
call fcn.0040c700
add esp, 4
mov dword [esp + 0x44], 0
jmp 0x41fd47
mov ebx, dword [ebp + 0xc]
jmp 0x41fd47