Function at 0x41a940
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x310
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x15c], 0x11fafbed
mov byte [esp + 0x160], 0xc
mov dword [esp + 0x161], 0
mov byte [esp + 0x165], 0
mov ecx, 0x42
mov edx, 0xbd
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x11a]
mov esi, ebx
not esi
or esi, edx
mov edi, esi
not edi
or ebx, ecx
or ebx, edi
add ebx, esi
add bl, 0xb7
mov byte [esp + ecx + 0x11a], bl
inc ecx
dec edx
cmp ecx, 0x4c
jne 0x41a9a0
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x15c]
test cl, cl
je 0x41a9fb
lea edx, [esp + 0x15d]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41a9f0
mov byte [esi], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
lea ecx, [esp + 0x58]
lea edx, [esp + 0x68]
lea edi, [esp + 0x3c]
xor ebx, ebx
push ecx
push edx
push edi
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.0041cf70
add esp, 0x18
test al, al
je 0x41be21
mov dword [esp + 0x15c], 0xe74f7d74
mov byte [esp + 0x160], 0xe8
mov dword [esp + 0x161], 0
mov word [esp + 0x165], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
xor edx, 0x29
lea eax, [ecx + ecx]
mov ebx, ecx
mov ecx, eax
and ecx, 0xc
sub ecx, edx
xor cl, byte [esp + ebx + 0x15c]
add cl, 0xcd
mov byte [esp + ebx + 0x15c], cl
and eax, 2
mov ecx, eax
and ecx, ebx
or eax, ebx
xor eax, 1
add eax, ecx
mov ecx, eax
cmp eax, 0xb
jb 0x41aa80
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41aadb
lea ecx, [esp + 0x15d]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41aad0
mov byte [esi], 0
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x14c], edx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x150], eax
mov dword [esp + 0x15c], 0xba4ebe7b
mov dword [esp + 0x160], 0x5b5ab964
mov dword [esp + 0x164], 0x91922b7
mov dword [esp + 0x168], 0x14171611
mov dword [esp + 0x16c], 0x2a210fc4
mov dword [esp + 0x170], 0x1b122826
mov dword [esp + 0x174], 0x3021d
mov dword [esp + 0x178], 0x1f2b2e
mov dword [esp + 0x17c], 0x2205d209
mov dword [esp + 0x180], 0xd4d43601
mov dword [esp + 0x184], 0xe271808
mov dword [esp + 0x188], 0x21040fea
mov dword [esp + 0x18c], 0x201ee224
mov dword [esp + 0x190], 0xe8eb2a22
mov dword [esp + 0x194], 0xf9273ae5
mov dword [esp + 0x198], 0x24272621
mov dword [esp + 0x19c], 0xfa0d0f09
mov dword [esp + 0x1a0], 0x2c3b102f
mov dword [esp + 0x1a4], 0xd0d9f71c
mov dword [esp + 0x1a8], 0xcfd7d6d1
mov dword [esp + 0x1ac], 0xd8dbdada
mov dword [esp + 0x1b0], 0x2e9c6d9
mov dword [esp + 0x1b4], 0xd5d2f6c6
mov dword [esp + 0x1b8], 0xf3d6f7f2
mov dword [esp + 0x1bc], 0xc8cbcac5
mov dword [esp + 0x1c0], 0xeaded6e5
mov dword [esp + 0x1c4], 0xdff522cd
mov dword [esp + 0x1c8], 0xf4e3d0e9
mov dword [esp + 0x1cc], 0xf8fbfaf5
mov dword [esp + 0x1d0], 0xf0fffef9
mov dword [esp + 0x1d4], 0xe63136e9
mov dword [esp + 0x1d8], 0xe4e7e6e1
mov dword [esp + 0x1dc], 0xcddfcc37
mov dword [esp + 0x1e0], 0xf9c2fae9
mov byte [esp + 0x1e4], 0xac
mov word [esp + 0x1e9], 0
mov dword [esp + 0x1e5], 0
mov eax, 0xc6c24437
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x393dbd25]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 0x6c
xor ecx, 0xec
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax + 0x393dbd25], cl
inc eax
cmp eax, 0xc6c244c6
jne 0x41aca0
mov dword [esp + 0x88], 0xace2d2de
mov dword [esp + 0x8c], 0x54a10744
mov dword [esp + 0x90], 0xb9a05ce4
mov dword [esp + 0x94], 0xd5d6d7d0
mov dword [esp + 0x98], 0xd14eda5f
mov dword [esp + 0x9c], 0xb5c95010
mov dword [esp + 0xa0], 0xc1c2c3dc
mov dword [esp + 0xa4], 0xdd64808
mov dword [esp + 0xa8], 0x28e28f41
mov dword [esp + 0xac], 0x81828a2a
mov dword [esp + 0xb0], 0xbdbebf80
mov dword [esp + 0xb4], 0xb9babbbc
mov dword [esp + 0xb8], 0x7c32020e
mov dword [esp + 0xbc], 0x72362794
mov dword [esp + 0xc0], 0xea6f2b8e
mov dword [esp + 0xc4], 0xe5e6e7e0
mov dword [esp + 0xc8], 0x218a3c2c
mov dword [esp + 0xcc], 0xedca2b67
mov dword [esp + 0xd0], 0x910d2024
mov dword [esp + 0xd4], 0xbd969790
mov dword [esp + 0xd8], 0x999a9bfc
mov dword [esp + 0xdc], 0x57135798
mov dword [esp + 0xe0], 0x730f4bbc
mov dword [esp + 0xe4], 0x3f0b4fa8
mov dword [esp + 0xe8], 0x898a8b84
mov dword [esp + 0xec], 0xa94a3c44
mov dword [esp + 0xf0], 0x813d7c8c
mov dword [esp + 0xf4], 0xb53cfe78
mov dword [esp + 0xf8], 0xb9babbb4
mov dword [esp + 0xfc], 0x75bebfb8
mov dword [esp + 0x100], 0x9aa3bd33
mov dword [esp + 0x104], 0xa5a6a7a0
mov dword [esp + 0x108], 0x8d66266c
mov dword [esp + 0x10c], 0xca7967a8
mov byte [esp + 0x110], 0xac
mov word [esp + 0x115], 0
mov dword [esp + 0x111], 0
mov eax, 0x77
mov ecx, 0x88
nop
nop
movzx edx, byte [esp + eax + 0x11]
mov ebx, eax
or ebx, edx
not edx
or edx, ecx
and edx, ebx
add dl, 0xad
mov byte [esp + eax + 0x11], dl
inc eax
dec ecx
cmp eax, 0x106
jne 0x41ae70
lea eax, [esp + 0x15c]
lea edx, [esp + 0x88]
lea ecx, [esp + 0x148]
push eax
push 0x88
push edx
push edi
call fcn.0043b720
mov dword [esp + 0x144], edx
mov dword [esp + 0x140], eax
xor ecx, ecx
or eax, edx
je 0x41be1f
mov dword [esp + 0x15c], 0x49d0d5e4
mov byte [esp + 0x160], 0x44
mov dword [esp + 0x161], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
or al, 0x70
xor al, byte [esp + ecx + 0x15c]
add al, 0xd0
mov byte [esp + ecx + 0x15c], al
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
cmp ecx, 9
jb 0x41aef0
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41af3b
lea ecx, [esp + 0x15d]
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 0x41af30
mov byte [esi], 0
lea eax, [esp + 0x140]
lea ecx, [esp + 0x148]
push 0
push 8
push eax
push edi
call fcn.0043b720
mov dword [esp + 0x13c], edx
mov dword [esp + 0x138], eax
or eax, edx
je 0x41be1f
mov dword [esp + 0x15c], 0x1bb8b8b6
mov byte [esp + 0x160], 0x20
mov dword [esp + 0x161], 0
mov eax, 0xafd7f939
mov ecx, 0x502806c6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x50280823]
mov edi, ecx
and edi, 0x502806f4
mov ebx, eax
and ebx, 0xa683e10b
or ebx, edi
xor edx, 0x597c1ef4
mov edi, edx
and edi, ebx
add edx, ebx
add edi, edi
sub edx, edi
add dl, 0xe3
mov byte [esp + eax + 0x50280823], dl
inc eax
dec ecx
cmp eax, 0xafd7f942
jne 0x41afa0
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41affb
lea ecx, [esp + 0x15d]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41aff0
mov byte [esi], 0
lea eax, [esp + 0x138]
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x3c]
push 0
push 8
push eax
push edx
call fcn.0043abf0
mov eax, dword [esp + 0x5c]
xor ebx, ebx
cmp eax, dword [esp + 0x60]
je 0x41be21
mov dword [esp + 0x15c], 0x73e171e5
mov dword [esp + 0x160], 0x6ff26df1
mov dword [esp + 0x164], 0x6bf769f7
mov dword [esp + 0x168], 0x67fb6532
mov dword [esp + 0x16c], 0x63ff61e8
mov word [esp + 0x170], 0x9d9c
mov dword [esp + 0x172], 0
mov word [esp + 0x176], 0
nop
nop
mov eax, ebx
add al, 0xec
xor al, byte [esp + ebx + 0x15c]
add al, 0x64
mov byte [esp + ebx + 0x15c], al
inc ebx
cmp ebx, 0x1c
jne 0x41b080
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
xor ecx, ecx
lea edx, [esp + 0x88]
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [eax + ecx]
movzx ebx, word [esp + ecx + 0x15c]
test di, di
je 0x41b0c9
add ecx, 2
cmp di, bx
je 0x41b0b0
mov dword [esp + 0x15c], 0x27c6c7c3
mov byte [esp + 0x160], 0x28
mov dword [esp + 0x161], 0
mov dword [esp + 0x164], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xf7
xor cl, byte [esp + eax + 0x15c]
add cl, 0x2d
mov byte [esp + eax + 0x15c], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0xc
jb 0x41b100
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41b14b
lea ecx, [esp + 0x15d]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b140
mov byte [esi], 0
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x120], eax
cmp ecx, eax
je 0x41be1f
mov eax, ebx
xor ebx, ebx
mov dword [esp + 0x34], 0x1a8
mov word [esp + 0x3a], di
mov word [esp + 0x38], ax
cmp di, ax
je 0x41bebd
mov dword [esp + 0x34], 0x190
mov dword [esp + 0x54], 0x1b0
jne 0x41becb
mov dword [esp + 0x4c], 0x20
je 0x41b1ac
mov dword [esp + 0x4c], 0x10
not edx
mov dword [esp + 0x11c], edx
lea edi, [esp + 0x3c]
jmp 0x41b1db
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x124]
add ecx, 8
cmp ecx, dword [esp + 0x120]
je 0x41bee6
mov dword [esp + 0x50], ebx
mov eax, dword [ecx]
mov dword [esp], eax
mov dword [esp + 0x124], ecx
mov eax, dword [ecx + 4]
mov dword [esp + 0x2c], eax
push 0x1b0
push 0
lea eax, [esp + 0x164]
push eax
call fcn.0040ccd0
add esp, 0xc
xor ebx, ebx
jmp 0x41b21e
mov ebx, dword [esp + 0x30]
inc ebx
cmp ebx, 0xb
je 0x41b450
mov ecx, edi
push 0
push 0
push dword [esp + 0x5c]
lea eax, [esp + 0x168]
push eax
push dword [esp + 0x3c]
push dword [esp + 0x14]
call fcn.0043aa60
test eax, eax
js 0x41b214
cmp byte [esp + 0x22c], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x22d], 0
mov byte [esp + 0x70], cl
sete al
xor al, 0x31
mov byte [esp + 0x71], al
cmp byte [esp + 0x22e], 0
sete al
xor al, 0x31
mov byte [esp + 0x72], al
mov eax, dword [esp + 0x34]
cmp byte [esp + eax + 0x15c], 0
sete al
xor al, 0x31
mov byte [esp + 0x73], al
mov word [esp + 0x74], 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 + 0x71]
inc eax
test cl, cl
jne 0x41b2a0
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x22e]
test cl, cl
jne 0x41b470
cmp byte [esp + 0x22c], 0
jne 0x41b2df
mov edx, dword [esp + 0x19c]
or edx, dword [esp + 0x1a0]
je 0x41b470
mov dword [esp + 0x30], ebx
add esi, eax
mov dword [esp + 0x88], 0xf1171863
mov byte [esp + 0x8c], 0xfc
mov dword [esp + 0x8d], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x88]
lea edx, [eax + 0x7e1e7b2a]
and edx, ecx
mov edi, edx
or edi, 0xfd
inc edi
mov ebx, edx
and ebx, 0x3d
imul ebx, edi
mov edi, edx
and edi, 2
or edx, 2
imul edx, edi
sub ebx, edx
add ecx, eax
add ecx, 0x7e1e7b2a
add ecx, ebx
add cl, 0x2e
mov byte [esp + eax + 0x88], cl
lea ecx, [eax + eax]
and ecx, 2
mov edx, ecx
and edx, eax
xor ecx, eax
xor ecx, 1
lea eax, [ecx + edx*2]
cmp eax, 9
jb 0x41b310
movzx eax, byte [esp + 0x88]
test al, al
je 0x41b38b
lea ecx, [esp + 0x89]
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b380
mov byte [esi], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0xff676980
mov dword [esp + 0x88], 0x94959697
mov byte [esp + 0x8c], 0
mov eax, 0x23
mov ecx, 0xd67bf7db
nop
nop
nop
nop
nop
lea edx, [eax - 0x6b3dfbff]
mov edi, ecx
and edi, 0x3b
and edx, 4
or edx, edi
xor dl, byte [esp + eax + 0x65]
xor dl, 0x3b
add dl, 0x4c
mov byte [esp + eax + 0x65], dl
inc eax
dec ecx
cmp eax, 0x28
jne 0x41b3c0
mov eax, dword [0x44c3b8]
test eax, eax
lea edi, [esp + 0x3c]
je 0x41b210
mov ecx, dword [esp + 0x88]
xor edx, edx
mov ebx, dword [0x44c3bc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x3568c09b
je 0x41b423
inc edx
cmp eax, edx
jne 0x41b410
jmp 0x41b210
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x41b210
lea ecx, [esp + 8]
push ecx
push 0
push 1
push eax
push dword [0x44c3c0]
call fcn.0043ce20
add esp, 0x14
jmp 0x41b210
movzx ecx, byte [esp + 0x22e]
test cl, cl
jne 0x41b47a
jmp 0x41b1c0
add esi, eax
test cl, cl
je 0x41b1c0
call fcn.00405070
mov dword [esp + 0x30], eax
push eax
call fcn.00404a30
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x88], 0x89eff3e9
mov byte [esp + 0x8c], 0xac
lea eax, [esp + 0x8d]
mov dword [eax + 3], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 0x88]
lea ecx, [ebx + ebx]
mov edi, 0x73a3b1e3
sub edi, eax
lea edx, [edi + edi]
not edx
add edx, edi
and edx, ebx
not ecx
add ecx, ebx
mov ebx, 0xe3
sub ebx, eax
and ebx, ecx
or ebx, edx
mov cl, 0x73
sub cl, bl
mov byte [esp + eax + 0x88], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0xc
jb 0x41b4c0
movzx eax, byte [esp + 0x88]
test al, al
je 0x41b530
lea ecx, [esp + 0x89]
lea edi, [esp + 0x3c]
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b520
jmp 0x41b534
lea edi, [esp + 0x3c]
mov byte [esi], 0
mov eax, dword [esp + 0x194]
mov edx, dword [esp + 0x198]
xor ebx, ebx
mov ecx, eax
or ecx, edx
je 0x41b590
mov ecx, edi
push 0
push 0
push 0x40
lea edi, [esp + 0x94]
push edi
push edx
push eax
call fcn.0043aa60
test eax, eax
js 0x41b594
xor eax, eax
movzx ecx, word [esp + 0x38]
cmp word [esp + 0x3a], cx
sete al
lea ecx, [esp + 0x3c]
mov edx, edi
push eax
push dword [esp + 4]
call fcn.0041dad0
add esp, 8
jmp 0x41b596
xor eax, eax
jmp 0x41b59a
xor eax, eax
lea edi, [esp + 0x3c]
mov dword [esp + 0x88], 0x61040401
mov byte [esp + 0x8c], 0x94
mov dword [esp + 0x8d], 0
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, ebx
add cl, 0x66
xor cl, byte [esp + ebx + 0x88]
add cl, 2
mov byte [esp + ebx + 0x88], cl
inc ebx
cmp ebx, 9
jne 0x41b5c0
movzx edx, byte [esp + 0x88]
mov ebx, eax
test dl, dl
je 0x41b60b
lea ecx, [esp + 0x89]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], dl
inc esi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x41b600
mov byte [esi], 0
push dword [esp]
call fcn.00404e70
add esp, 4
test eax, eax
setne cl
and cl, bl
cmp cl, 1
jne 0x41b7a0
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2b4]
mov edx, dword [esp + 0x2b8]
add eax, 0x28
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x13c]
push ebx
push edx
push eax
call fcn.0043aa60
test eax, eax
js 0x41ba70
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0x134]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x134]
push ebx
push edx
push eax
call fcn.0043aa60
test eax, eax
js 0x41ba70
mov eax, dword [esp + 0x12c]
mov edx, dword [esp + 0x128]
add edx, dword [esp + 0x4c]
adc eax, 0
mov ecx, edi
push 0
push 0
push 0x18
lea edi, [esp + 0x7c]
push edi
push eax
push edx
call fcn.0043aa60
test eax, eax
js 0x41ba70
cmp byte [esp + 0x87], 0
lea eax, [esp + 0x70]
mov dword [esp + 0x28], eax
js 0x41b7a9
mov dword [esp + 8], 0x73e1711d
mov dword [esp + 0xc], 0x6ffc6df1
mov dword [esp + 0x10], 0x6b166948
mov dword [esp + 0x14], 0x67ea6505
mov dword [esp + 0x18], 0x63066101
mov word [esp + 0x1c], 0x9d9c
lea eax, [esp + 0x1e]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0x6c
mov ecx, 0x93
movzx edi, byte [esp + eax - 0x64]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0xe4
mov byte [esp + eax - 0x64], dl
inc eax
dec ecx
cmp eax, 0x85
jne 0x41b720
movzx ebx, word [esp + 8]
test bx, bx
je 0x41b801
lea eax, [esp + 8]
mov ecx, dword [esp + 0x28]
mov edx, ecx
mov dword [esp], ecx
jmp 0x41b76c
movzx ebx, word [eax]
test bx, bx
je 0x41b81c
movzx edi, word [edx]
test di, di
je 0x41b80e
add edx, 2
add eax, 2
mov ecx, dword [esp]
add ecx, 2
cmp di, bx
je 0x41b78e
mov dword [esp], ecx
mov edx, ecx
je 0x41b760
lea eax, [esp + 8]
jmp 0x41b760
mov dword [esp + 0x2c], ebx
jmp 0x41be03
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov eax, ebx
or eax, edi
je 0x41ba70
mov eax, dword [esp + 0x78]
lea ecx, [eax*2 + 2]
inc eax
mov dword [esp], ecx
mov eax, ecx
jns 0x41b7d3
mov eax, 0xffffffff
push eax
call fcn.0040cc40
add esp, 4
lea ecx, [esp + 0x3c]
push 0
push 0
push dword [esp + 8]
mov dword [esp + 0x34], eax
push eax
push edi
push ebx
call fcn.0043aa60
test eax, eax
jns 0x41b6da
jmp 0x41ba70
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x88]
jmp 0x41b830
lea ebx, [esp + 0x88]
mov edx, ebx
jmp 0x41ba3c
lea ebx, [esp + 0x88]
mov edx, ebx
mov eax, dword [esp]
test eax, eax
je 0x41ba3c
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x41ba3c
lea ecx, [eax + 0x14]
mov dword [esp + 4], ecx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x41b86a
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x41b850
mov ebx, edx
jmp 0x41ba3c
mov ebx, edx
test ecx, ecx
mov edi, dword [esp + 4]
je 0x41b93f
sar ecx, 1
mov eax, ecx
and eax, 3
je 0x41b8d3
mov ebx, edx
xor edx, edx
mov dword [esp + 0x118], eax
nop
nop
nop
nop
mov edi, dword [esp + 4]
movzx eax, word [edi]
mov word [esp], ax
xor eax, eax
cmp word [esp], 0
setne al
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x118]
mov dword [esp + 4], edi
movzx edi, word [esp]
mov word [ebx], di
add ebx, 2
inc edx
cmp eax, edx
jne 0x41b890
mov eax, ecx
sub eax, edx
lea edx, [esp + 0x88]
mov edi, dword [esp + 4]
jmp 0x41b8d7
mov ebx, edx
mov eax, ecx
dec ecx
cmp ecx, 3
jb 0x41b93f
nop
nop
nop
mov dword [esp], eax
movzx eax, word [edi]
xor ecx, ecx
test ax, ax
setne cl
mov word [ebx], ax
lea eax, [edi + ecx*2]
movzx ecx, word [edi + 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 edi, [eax + edx*2]
mov eax, dword [esp]
mov word [ebx + 6], cx
add ebx, 8
add eax, 0xfffffffc
jne 0x41b8e0
lea edx, [esp + 0x88]
mov word [ebx], 0
mov eax, dword [esp + 0x34]
cmp byte [esp + eax + 0x15c], 0
jne 0x41ba3c
mov dword [esp + 8], 0x8fd789e8
mov dword [esp + 0xc], 0x83258d3e
mov dword [esp + 0x10], 0x873d8133
mov dword [esp + 0x14], 0x9b238536
mov dword [esp + 0x18], 0x9f2d992c
mov word [esp + 0x1c], 0x9d9c
mov dword [esp + 0x1e], 0
xor eax, eax
nop
movzx ecx, byte [esp + eax + 8]
lea edi, [eax + 0x4bed80a2]
mov edx, 0x5d
sub edx, eax
xor edx, edi
and edx, ecx
xor edx, edi
not edx
and edx, edi
add edx, edx
neg edx
lea edi, [eax + edx]
add edi, 0x4bed80a2
lea edx, [edi + ecx]
mov dword [esp], edx
mov edx, 0x7ba3832a
sub edx, dword [esp]
add edi, ecx
add edi, 0x845c7cd5
mov ecx, edi
and ecx, 1
mov dword [esp], ecx
mov ecx, edx
not ecx
and edx, 0xfd
and edi, 2
or edi, edx
and ecx, 1
or ecx, edi
xor ecx, 0xfc
add ecx, dword [esp]
mov byte [esp + eax + 8], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x1a
jb 0x41b990
movzx eax, word [esp + 8]
test ax, ax
je 0x41ba30
lea ecx, [esp + 0xa]
lea edx, [esp + 0x88]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41ba1d
jmp 0x41ba37
lea edx, [esp + 0x88]
mov word [ebx], 0
cmp byte [esp + 0x87], 0
mov edi, edx
jns 0x41ba5b
push dword [esp + 0x28]
call fcn.0040cc50
lea edi, [esp + 0x8c]
add esp, 4
cmp edi, ebx
jne 0x41bb16
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 8], 0x29b82b6b
mov dword [esp + 0xc], 0x2dbf2f4d
mov dword [esp + 0x10], 0x51c05345
mov dword [esp + 0x14], 0x55c2573f
mov dword [esp + 0x18], 0x595a5bc5
mov word [esp + 0x1c], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
and ecx, 0x15
mov edx, eax
and edx, 2
mov edi, edx
xor edi, 2
imul edi, ecx
or ecx, 2
imul ecx, edx
mov edx, eax
xor edx, 0x37
add edx, edi
add edx, ecx
xor dl, byte [esp + eax + 8]
add dl, 0xed
mov byte [esp + eax + 8], dl
inc eax
cmp eax, 0x16
jne 0x41bab0
movzx eax, word [esp + 8]
lea edi, [esp + 0x88]
mov ebx, edi
test ax, ax
je 0x41bb11
lea ecx, [esp + 0xa]
mov ebx, edi
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41bb00
mov word [ebx], 0
mov eax, ebx
not eax
and eax, edi
mov edx, ebx
and edx, dword [esp + 0x11c]
sub edx, eax
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 eax, edx
xor eax, 0xfffffffc
mov ecx, edx
or ecx, 3
and ecx, eax
mov dword [esp + 4], edx
mov eax, edx
mov edx, ecx
and eax, 0xfffffffc
mov dword [esp], esi
add esi, eax
add eax, esp
add eax, 0x88
shr ecx, 1
mov dword [esp + 0x28], eax
mov edi, esi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x41bb77
and edx, 0xfffffffe
mov eax, dword [esp + 0x28]
movzx eax, byte [eax + edx]
mov byte [esi + edx], al
push 0xa
push 0xb
lea eax, [esp + 0x78]
push eax
push dword [esp + 0x38]
call fcn.0041d8a0
add esp, 0x10
mov dword [esp + 8], 0xcfd3dd7a
mov dword [esp + 0xc], 0x7f9e889c
mov word [esp + 0x10], 0
mov ecx, 0xbe676414
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x41989bf4]
mov edi, ecx
and edi, ebx
mov esi, edi
or esi, 0xfffffffd
inc esi
mov edx, edi
and edx, 0x3d
imul edx, esi
mov esi, edi
and esi, 2
or edi, 2
imul edi, esi
add edx, ebx
sub edx, edi
add edx, ecx
mov edi, edx
and edi, 0x99
mov esi, edx
and esi, 2
mov ebx, esi
xor ebx, 2
imul ebx, edi
or edi, 2
imul edi, esi
xor edx, 0x9b
add edx, ebx
add edx, edi
inc dl
mov byte [esp + ecx + 0x41989bf4], dl
inc ecx
cmp ecx, 0xbe67641e
jne 0x41bbb0
mov esi, dword [esp]
mov ebx, dword [esp + 4]
add esi, ebx
movzx ecx, byte [esp + 8]
test cl, cl
je 0x41bc3b
lea edx, [esp + 9]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41bc30
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x41bc5b
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 0x41bc50
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 0x41bc70
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x41bc90
mov eax, 0xffffffff
jmp 0x41bc99
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040cc40
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x41bcd1
add edi, 2
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41bcc0
mov dword [esp + 4], eax
inc esi
mov dword [esp], esi
mov eax, edx
mov word [edx], 0x2f
mov dword [esp + 8], 0xf948fbd5
mov dword [esp + 0xc], 0xfd77ff63
mov dword [esp + 0x10], 0xf166f32e
mov dword [esp + 0x14], 0xf562f778
mov word [esp + 0x18], 0xebf4
mov dword [esp + 0x1a], 0
mov ecx, 0x45e5197f
mov edx, 0x80
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x45e51977]
mov edi, edx
xor edi, ecx
and edi, esi
xor edi, ecx
mov ebx, 1
sub ebx, edi
not ebx
and ebx, 1
mov esi, 0x7b
sub esi, edi
or esi, 1
sub ebx, esi
mov byte [esp + ecx - 0x45e51977], bl
inc ecx
dec edx
cmp ecx, 0x45e51995
jne 0x41bd20
add eax, 2
movzx ecx, word [esp + 0x88]
test cx, cx
je 0x41bd81
lea edx, [esp + 0x8a]
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41bd70
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x41bdb3
lea edx, [esp + 0xa]
mov esi, dword [esp]
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 0x41bda0
jmp 0x41bdb6
mov esi, dword [esp]
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0x30]
call fcn.00405c60
add esp, 4
mov edi, eax
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x41bdd0
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0xc]
push ebx
call fcn.0040d420
mov dword [esp + 0x2c], eax
push edi
call fcn.00405cf0
add esp, 4
push ebx
call fcn.0040cc50
add esp, 4
lea edi, [esp + 0x3c]
push dword [esp + 0x30]
call fcn.00404eb0
add esp, 4
mov ebx, dword [esp + 0x50]
and bl, 1
or bl, byte [esp + 0x2c]
jmp 0x41b1c4
xor ebx, ebx
lea ecx, [esp + 0x3c]
call fcn.0043a1b0
mov dword [esp + 0x15c], 0x41eaf1e5
mov byte [esp + 0x160], 0x54
mov dword [esp + 0x161], 0
mov dword [esp + 0x164], 0
mov eax, 0x2d06186e
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x2d061712]
xor ecx, eax
mov edx, ecx
not edx
and edx, 0x27
and ecx, 0xd8
sub ecx, edx
inc cl
mov byte [esp + eax - 0x2d061712], cl
inc eax
cmp eax, 0x2d06187a
jne 0x41be60
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41beab
lea ecx, [esp + 0x15d]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41bea0
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
mov dword [esp + 0x54], 0x1b0
je 0x41b19a
mov dword [esp + 0x54], 0x198
mov dword [esp + 0x4c], 0x20
jne 0x41b1a4
jmp 0x41b1ac
mov eax, dword [esp + 0x5c]
and bl, 1
test eax, eax
je 0x41be21
cmp eax, dword [esp + 0x60]
je 0x41be21
push eax
call fcn.0040cc50
add esp, 4
mov dword [esp + 0x5c], 0
jmp 0x41be21