Function at 0x41ae10
Capabilities:
Contain obfuscated stackstrings
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 + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x15c], 0xfb6a111b
mov byte [esp + 0x160], 0xe0
mov dword [esp + 0x161], 0
xor ecx, ecx
mov edx, 0x56
nop
mov esi, edx
and esi, 0x5e
mov edi, ecx
and edi, 1
or edi, esi
movzx esi, byte [esp + ecx + 0x15c]
and edi, esi
not esi
or esi, edx
lea ebx, [ecx + esi]
add ebx, 0xaa
or ebx, edi
add bl, 0xb3
mov byte [esp + ecx + 0x15c], bl
inc ecx
dec edx
cmp ecx, 9
jne 0x41ae60
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x15c]
test cl, cl
je 0x41aebb
lea edx, [esp + 0x15d]
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41aeb0
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 + 0x60]
lea edx, [esp + 0x70]
lea edi, [esp + 0x3c]
push ecx
push edx
push edi
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.0041d570
add esp, 0x18
test al, al
je 0x41b6c7
mov dword [esp + 0x15c], 0x99310300
mov byte [esp + 0x160], 0x9c
mov dword [esp + 0x161], 0
lea eax, [esp + 0x15c]
mov ecx, 0x55dda61b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax]
mov ebx, ecx
or ebx, edx
lea edi, [ecx - 0x55dda600]
and edi, edx
xor edi, ebx
lea edx, [edi + edi]
not edx
add edx, edi
add dl, 0x8c
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x55dda612
jne 0x41af40
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41af8b
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 0x41af80
mov byte [esi], 0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x14c], edx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x150], eax
mov dword [esp + 0x90], 0x6a16663b
mov dword [esp + 0x94], 0x1b1a790c
mov dword [esp + 0x98], 0x3929127f
mov dword [esp + 0x9c], 0x2c2f2e21
mov dword [esp + 0xa0], 0x1a11377c
mov dword [esp + 0xa4], 0x5b62680e
mov dword [esp + 0xa8], 0x50535255
mov dword [esp + 0xac], 0x50470b06
mov dword [esp + 0xb0], 0x726d0269
mov dword [esp + 0xb4], 0x1c1c7e51
mov dword [esp + 0xb8], 0x665f6848
mov dword [esp + 0xbc], 0x517c771a
mov dword [esp + 0xc0], 0x5066125c
mov dword [esp + 0xc4], 0x282b6a52
mov dword [esp + 0xc8], 0x297f6a2d
mov dword [esp + 0xcc], 0x7c7f7e71
mov dword [esp + 0xd0], 0x2a555729
mov dword [esp + 0xd4], 0x647b4077
mov dword [esp + 0xd8], 0x60694f54
mov dword [esp + 0xdc], 0x776f6e61
mov dword [esp + 0xe0], 0x686b6a5a
mov dword [esp + 0xe4], 0xd2a98e69
mov dword [esp + 0xe8], 0x8d82ae8e
mov dword [esp + 0xec], 0xa38eafa2
mov dword [esp + 0xf0], 0x989b9a9d
mov dword [esp + 0xf4], 0xaa969ecd
mov dword [esp + 0xf8], 0xd78dd285
mov dword [esp + 0xfc], 0x8c93a099
mov dword [esp + 0x100], 0x888b8a8d
mov dword [esp + 0x104], 0x80b7b689
mov dword [esp + 0x108], 0xbee1eea9
mov dword [esp + 0x10c], 0xbcbfbeb1
mov dword [esp + 0x110], 0x958794ef
mov dword [esp + 0x114], 0xb9f2bab9
mov byte [esp + 0x118], 0x64
mov byte [esp + 0x11b], 0
mov word [esp + 0x119], 0
lea eax, [esp + 0x90]
mov ecx, 0xfd302254
nop
nop
nop
nop
nop
movzx edi, byte [eax]
mov edx, ecx
or edx, edi
lea ebx, [ecx + 0x2cfde00]
and ebx, edi
not edx
or edx, ebx
mov edi, 1
sub edi, edx
not edi
and edi, 1
or edx, 1
add edx, edi
add dl, 0xa8
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0xfd3021c8
jne 0x41b150
mov dword [esp + 0x15c], 0x18d6c2c2
mov dword [esp + 0x160], 0x782bb570
mov dword [esp + 0x164], 0x4f7428e8
mov dword [esp + 0x168], 0xabaaa5a4
mov dword [esp + 0x16c], 0xa7daaa2d
mov dword [esp + 0x170], 0x5b4324e4
mov dword [esp + 0x174], 0xb7b6b1b0
mov dword [esp + 0x178], 0xf34a3cfc
mov dword [esp + 0x17c], 0xdc967d3f
mov dword [esp + 0x180], 0xf0e7ade
mov dword [esp + 0x184], 0xb0a0d0c
mov dword [esp + 0x188], 0x7060908
mov dword [esp + 0x18c], 0x48869292
mov dword [esp + 0x190], 0x5a9af520
mov dword [esp + 0x194], 0xd2599902
mov dword [esp + 0x198], 0xdbdad5d4
mov dword [esp + 0x19c], 0x973ee890
mov dword [esp + 0x1a0], 0xe3c69955
mov dword [esp + 0x1a4], 0xe79f6ca8
mov dword [esp + 0x1a8], 0xc3eae5e4
mov dword [esp + 0x1ac], 0xefeee900
mov dword [esp + 0x1b0], 0xb97da5ec
mov dword [esp + 0x1b4], 0xa579b9d0
mov dword [esp + 0x1b8], 0x6175bddc
mov dword [esp + 0x1bc], 0xfffef9f8
mov dword [esp + 0x1c0], 0x274670b0
mov dword [esp + 0x1c4], 0x178f4800
mov dword [esp + 0x1c8], 0xb80ce4c
mov dword [esp + 0x1cc], 0xf0e0908
mov dword [esp + 0x1d0], 0x5b120d0c
mov dword [esp + 0x1d4], 0x215ef99
mov dword [esp + 0x1d8], 0x1b1a1514
mov dword [esp + 0x1dc], 0x3b529650
mov dword [esp + 0x1e0], 0xc213551c
mov byte [esp + 0x1e4], 0x20
mov dword [esp + 0x1e5], 0
mov eax, 0x1a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x142]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x7e
mov byte [esp + eax + 0x142], cl
inc eax
cmp eax, 0xa7
jne 0x41b320
lea eax, [esp + 0x90]
lea edx, [esp + 0x15c]
lea ecx, [esp + 0x148]
push eax
push 0x88
push edx
lea eax, [esp + 0x48]
push eax
call fcn.0043b9d0
mov dword [esp + 0x144], edx
mov dword [esp + 0x140], eax
or eax, edx
je 0x41b6c7
mov dword [esp + 0x15c], 0xfa4a7b0
mov byte [esp + 0x160], 0x18
mov dword [esp + 0x161], 0
mov eax, 0x7b
mov ecx, 0x795a0f84
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0xe1]
mov ebx, eax
xor ebx, ecx
and ebx, edx
xor ebx, ecx
mov edx, ebx
not edx
and edx, 0x18
add edx, edx
lea edi, [ebx + ebx]
or edi, 0xcf
sub edx, ebx
add edx, edi
add dl, 0x99
mov byte [esp + eax + 0xe1], dl
inc eax
dec ecx
cmp eax, 0x84
jne 0x41b3b0
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41b40d
lea ecx, [esp + 0x15d]
lea edx, [esp + 0x3c]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b400
jmp 0x41b411
lea edx, [esp + 0x3c]
mov byte [esi], 0
lea eax, [esp + 0x140]
lea ecx, [esp + 0x148]
push 0
push 8
push eax
push edx
call fcn.0043b9d0
mov dword [esp + 0x13c], edx
mov dword [esp + 0x138], eax
or eax, edx
je 0x41b6c7
mov dword [esp + 0x15c], 0x8b282836
mov byte [esp + 0x160], 0x80
mov dword [esp + 0x161], 0
mov dword [esp + 0x164], 0
mov eax, 0x575c2a61
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x575c2905]
mov ecx, eax
and ecx, edx
mov edi, ecx
and edi, 0x7d
mov ebx, ecx
and ebx, 2
or ecx, 2
imul ecx, ebx
xor ebx, 2
imul ebx, edi
add ecx, ebx
add edx, eax
mov edi, ecx
xor edi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
add cl, 0x1b
mov byte [esp + eax - 0x575c2905], cl
inc eax
cmp eax, 0x575c2a6d
jne 0x41b480
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41b4eb
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 0x41b4e0
mov byte [esi], 0
lea eax, [esp + 0x138]
lea edx, [esp + 0x64]
lea ecx, [esp + 0x3c]
push 0
push 8
push eax
push edx
call fcn.0043aee0
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x68]
je 0x41b6c7
mov dword [esp + 0x15c], 0xd769c97d
mov dword [esp + 0x160], 0xd37ed579
mov dword [esp + 0x164], 0xdf73d17b
mov dword [esp + 0x168], 0xdb77dd2e
mov dword [esp + 0x16c], 0xa70bd960
mov word [esp + 0x170], 0xa5a4
mov dword [esp + 0x172], 0
mov word [esp + 0x176], 0
mov eax, 0x9c1798ae
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x63e868ae]
xor ecx, eax
mov edx, ecx
not edx
and edx, 0x67
and ecx, 0x98
sub ecx, edx
inc cl
mov byte [esp + eax + 0x63e868ae], cl
inc eax
cmp eax, 0x9c1798ca
jne 0x41b580
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [eax + ecx]
movzx edi, word [esp + ecx + 0x15c]
test dx, dx
je 0x41b5d9
add ecx, 2
cmp dx, di
je 0x41b5c0
mov word [esp + 0xe], dx
mov dword [esp + 0x15c], 0xc1627d69
mov byte [esp + 0x160], 0xd4
mov word [esp + 0x161], 0
mov byte [esp + 0x163], 0
mov eax, 0xb933aa2e
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x46cc572e]
xor ecx, eax
mov edx, ecx
and edx, 0x19
xor ecx, 0x19
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax + 0x46cc572e], cl
inc eax
cmp eax, 0xb933aa36
jne 0x41b610
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41b65d
lea ecx, [esp + 0x15d]
movzx edx, word [esp + 0xe]
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b650
jmp 0x41b662
movzx edx, word [esp + 0xe]
mov byte [esi], 0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x120], ecx
cmp eax, ecx
je 0x41b6c7
mov dword [esp + 0x4c], 0
mov dword [esp + 0x38], 0x1a8
cmp dx, di
je 0x41c3d8
mov dword [esp + 0x38], 0x190
mov dword [esp + 0x5c], 0x1b0
jne 0x41c3e6
mov dword [esp + 0x54], 0x20
je 0x41b6b9
mov dword [esp + 0x54], 0x10
lea ebx, [esp + 0x3c]
mov word [esp + 0x52], di
jmp 0x41b795
xor ebx, ebx
lea ecx, [esp + 0x3c]
call fcn.0043a4d0
mov dword [esp + 0x15c], 0x913a012d
mov byte [esp + 0x160], 0x8c
mov dword [esp + 0x161], 0
mov dword [esp + 0x164], 0
mov eax, 0x5f12eaa2
movzx ecx, byte [esp + eax - 0x5f12e946]
xor ecx, eax
mov edx, ecx
not edx
and ecx, 0xd5
and edx, 0x2a
sub ecx, edx
mov byte [esp + eax - 0x5f12e946], cl
inc eax
cmp eax, 0x5f12eaae
jne 0x41b700
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41b74b
lea ecx, [esp + 0x15d]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b740
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 + 4], edx
push dword [esp + 0x58]
call fcn.00404ef0
add esp, 4
mov eax, dword [esp + 0x4c]
and al, 1
or al, byte [esp + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x124]
add eax, 8
cmp eax, dword [esp + 0x120]
je 0x41c401
mov ecx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0x124], eax
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
push 0x1b0
push 0
lea eax, [esp + 0x164]
push eax
call fcn.0040cf50
add esp, 0xc
xor edi, edi
jmp 0x41b7de
lea ebx, [esp + 0x3c]
inc edi
cmp edi, 0xb
je 0x41ba00
mov ecx, ebx
push 0
push 0
push dword [esp + 0x64]
lea eax, [esp + 0x168]
push eax
push dword [esp + 0x14]
push dword [esp + 0x1c]
call fcn.0043ad70
test eax, eax
js 0x41b7d4
cmp byte [esp + 0x22c], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x22d], 0
mov byte [esp + 0x78], cl
sete al
xor al, 0x31
mov byte [esp + 0x79], al
cmp byte [esp + 0x22e], 0
sete al
xor al, 0x31
mov byte [esp + 0x7a], al
mov eax, dword [esp + 0x38]
cmp byte [esp + eax + 0x15c], 0
sete al
xor al, 0x31
mov byte [esp + 0x7b], al
mov word [esp + 0x7c], 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 + 0x79]
inc eax
test cl, cl
jne 0x41b860
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x22e]
test cl, cl
jne 0x41b9f0
cmp byte [esp + 0x22c], 0
jne 0x41b89f
mov edx, dword [esp + 0x19c]
or edx, dword [esp + 0x1a0]
je 0x41b9f0
mov edx, dword [esp + 0x38]
cmp byte [esp + edx + 0x15c], 0
jne 0x41b8c4
mov edx, dword [esp + 0x19c]
xor edx, 1
or edx, dword [esp + 0x1a0]
je 0x41b9f0
add esi, eax
mov dword [esp + 0x90], 0x27454cbd
mov byte [esp + 0x94], 0x28
lea eax, [esp + 0x95]
mov word [eax + 4], 0
mov dword [eax], 0
xor eax, eax
xor ecx, ecx
mov ebx, eax
and ebx, 0xe
mov edx, ecx
xor edx, 0xb7
add edx, ebx
xor dl, byte [esp + ecx + 0x90]
add dl, 0x6d
mov byte [esp + ecx + 0x90], dl
inc ecx
add eax, 2
cmp ecx, 0xb
jne 0x41b8f0
movzx eax, byte [esp + 0x90]
test al, al
je 0x41b93b
lea ecx, [esp + 0x91]
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b930
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x90], 0x14151a1b
mov dword [esp + 0x94], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 6
xor cl, byte [esp + eax + 0x90]
add cl, 0xe2
mov byte [esp + eax + 0x90], cl
inc eax
cmp eax, 8
jne 0x41b970
mov eax, dword [0x44cf90]
test eax, eax
je 0x41b7d0
mov ecx, dword [esp + 0x90]
xor edx, edx
mov ebx, dword [0x44cf94]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x3568c09b
je 0x41b9c3
inc edx
cmp eax, edx
jne 0x41b9b0
jmp 0x41b7d0
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x41b7d0
lea ecx, [esp + 0x10]
push ecx
push 0
push 1
push eax
push dword [0x44cf98]
call fcn.0043d020
add esp, 0x14
jmp 0x41b7d0
add esi, eax
test cl, cl
jne 0x41ba10
jmp 0x41b77e
movzx ecx, byte [esp + 0x22e]
test cl, cl
je 0x41b77e
call fcn.004050b0
mov dword [esp + 0x58], eax
push eax
call fcn.00404a70
add esp, 4
mov dword [esp + 0x30], eax
mov dword [esp + 0x90], 0x8b29252f
mov byte [esp + 0x94], 0x80
lea eax, [esp + 0x95]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
mov edi, eax
and edi, 2
mov edx, ecx
xor edx, 0x21
add edx, edi
xor dl, byte [esp + ecx + 0x90]
add dl, 0x5b
mov byte [esp + ecx + 0x90], dl
inc ecx
add eax, 2
cmp ecx, 8
jne 0x41ba50
movzx eax, byte [esp + 0x90]
test al, al
je 0x41ba9b
lea ecx, [esp + 0x91]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ba90
mov byte [esi], 0
mov eax, dword [esp + 0x194]
mov edx, dword [esp + 0x198]
xor edi, edi
mov ecx, eax
or ecx, edx
mov dword [esp + 8], esi
je 0x41bb00
mov ecx, ebx
push 0
push 0
push 0x40
lea ebx, [esp + 0x9c]
push ebx
push edx
push eax
call fcn.0043ad70
test eax, eax
js 0x41bb0a
xor eax, eax
movzx ecx, word [esp + 0x52]
cmp word [esp + 0xe], cx
sete al
lea ecx, [esp + 0x3c]
mov edx, ebx
push eax
push dword [esp + 0x34]
call fcn.0041dfc0
add esp, 8
jmp 0x41bb0c
mov dword [esp + 4], 0
jmp 0x41bb10
xor eax, eax
mov dword [esp + 4], eax
mov dword [esp + 0x90], 0x2b807887
mov byte [esp + 0x94], 0x10
lea eax, [esp + 0x95]
mov byte [eax + 4], 0
mov dword [eax], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + edi + 0x90]
mov edx, edi
and edx, 0xb
xor edx, 0xa5bb9b7b
mov eax, edi
and eax, 4
sub eax, edx
mov edx, eax
and edx, ecx
mov esi, edx
or esi, 0xfd
inc esi
mov ebx, edx
and ebx, 0xffffff9d
imul ebx, esi
mov esi, edx
and esi, 2
or edx, 2
imul edx, esi
sub ebx, edx
add eax, ecx
add eax, ebx
add al, 0x67
mov byte [esp + edi + 0x90], al
inc edi
cmp edi, 0xa
jne 0x41bb40
movzx eax, byte [esp + 0x90]
test al, al
je 0x41bbc0
lea ecx, [esp + 0x91]
mov esi, dword [esp + 8]
lea ebx, [esp + 0x3c]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41bbb0
jmp 0x41bbc8
mov esi, dword [esp + 8]
lea ebx, [esp + 0x3c]
mov byte [esi], 0
push dword [esp + 0x30]
call fcn.00404eb0
add esp, 4
test eax, eax
setne cl
mov edx, dword [esp + 4]
and cl, dl
cmp cl, 1
jne 0x41b760
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2b4]
mov edx, dword [esp + 0x2b8]
add eax, 0x28
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x13c]
push edi
push edx
push eax
call fcn.0043ad70
test eax, eax
mov dword [esp + 8], esi
js 0x41c040
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0x134]
add eax, 0x10
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x134]
push edi
push edx
push eax
call fcn.0043ad70
test eax, eax
js 0x41c040
mov eax, dword [esp + 0x12c]
mov edx, dword [esp + 0x128]
add edx, dword [esp + 0x54]
adc eax, 0
mov ecx, ebx
push 0
push 0
push 0x18
lea edi, [esp + 0x84]
push edi
push eax
push edx
call fcn.0043ad70
test eax, eax
js 0x41c040
cmp byte [esp + 0x8f], 0
lea eax, [esp + 0x78]
mov dword [esp + 0x34], eax
js 0x41bd90
mov dword [esp + 0x10], 0x3f101d5
mov dword [esp + 0x14], 0x7f405e1
mov dword [esp + 0x18], 0xbce0928
mov dword [esp + 0x1c], 0xffa0ded
mov dword [esp + 0x20], 0x13ce11f1
mov word [esp + 0x24], 0x1514
lea eax, [esp + 0x26]
mov byte [eax + 4], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x10]
mov edx, eax
and edx, 5
xor edx, 0x80c72ae5
mov edi, eax
and edi, 0x1a
sub edi, edx
mov edx, edi
xor edx, 0xa0e9a33f
add edi, 0x25
add edx, 0x1b
mov esi, edx
and esi, 0x58
and edi, 0x27
or edi, esi
xor edi, 0x27
and edi, edx
mov esi, ecx
not esi
or esi, edi
and edx, esi
not edx
or edx, ecx
add edx, esi
add dl, 0x41
mov byte [esp + eax + 0x10], dl
inc eax
cmp eax, 0x1b
jne 0x41bcf0
movzx edi, word [esp + 0x10]
test di, di
je 0x41bdc7
lea eax, [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov edx, ecx
mov dword [esp + 4], ecx
mov esi, dword [esp + 8]
jmp 0x41bd68
movzx edi, word [eax]
test di, di
je 0x41bde6
movzx ebx, word [edx]
test bx, bx
je 0x41bdd8
add edx, 2
add eax, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp bx, di
je 0x41bd88
mov dword [esp + 4], ecx
mov edx, ecx
je 0x41bd60
lea eax, [esp + 0x10]
jmp 0x41bd60
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov eax, ecx
or eax, edx
je 0x41c040
mov edi, dword [esp + 0x80]
mov ebx, edi
inc ebx
mov dword [esp + 4], ecx
mov dword [esp + 0x11c], edx
jns 0x41be8e
mov eax, 0xffffffff
jmp 0x41be95
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 8]
lea edx, [esp + 0x90]
jmp 0x41bdfb
lea edx, [esp + 0x90]
mov ebx, edx
jmp 0x41c01b
lea edx, [esp + 0x90]
mov ebx, edx
mov eax, dword [esp + 4]
test eax, eax
je 0x41c01b
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x41c01b
mov ebx, eax
add eax, 0x14
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x41be3a
movzx edi, word [ebx + ecx + 0x16]
add ecx, 2
test di, di
jne 0x41be20
mov ebx, edx
jmp 0x41c01b
mov ebx, edx
test ecx, ecx
je 0x41bf59
sar ecx, 1
mov edx, ecx
and edx, 3
je 0x41bee8
xor edi, edi
lea ebx, [esp + 0x90]
mov dword [esp + 4], edx
nop
nop
movzx esi, word [eax]
mov edx, ebx
xor ebx, ebx
test si, si
setne bl
lea eax, [eax + ebx*2]
mov ebx, edx
mov edx, dword [esp + 4]
mov word [ebx], si
add ebx, 2
inc edi
cmp edx, edi
jne 0x41be60
mov esi, ecx
sub esi, edi
lea edx, [esp + 0x90]
jmp 0x41bef3
lea eax, [edi*2 + 2]
push eax
call fcn.0040ced0
add esp, 4
mov edx, 2
sub edx, edi
and edx, 2
mov ecx, ebx
and ecx, 0xfffffffd
imul ecx, edx
mov edx, ebx
and edx, 2
or ebx, 2
imul ebx, edx
add ebx, ecx
lea ecx, [esp + 0x3c]
push 0
push 0
push ebx
mov dword [esp + 0x40], eax
push eax
push dword [esp + 0x12c]
push dword [esp + 0x18]
call fcn.0043ad70
test eax, eax
jns 0x41bca3
jmp 0x41c040
lea edx, [esp + 0x90]
mov ebx, edx
mov esi, ecx
dec ecx
cmp ecx, 3
jb 0x41bf59
nop
nop
nop
nop
nop
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 esi, 0xfffffffc
jne 0x41bf00
lea edx, [esp + 0x90]
mov word [ebx], 0
mov eax, dword [esp + 0x38]
cmp byte [esp + eax + 0x15c], 0
je 0x41bf75
mov esi, dword [esp + 8]
jmp 0x41c01b
mov dword [esp + 0x10], 0x176f1938
mov dword [esp + 0x14], 0x138d1586
mov dword [esp + 0x18], 0xf951183
mov dword [esp + 0x1c], 0xb930d9e
mov dword [esp + 0x20], 0x7950984
mov dword [esp + 0x24], 0x504
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x10]
lea esi, [eax + 0x86]
mov ecx, 0x79
sub ecx, eax
xor ecx, esi
and ecx, edx
xor ecx, esi
add cl, 0x62
mov byte [esp + eax + 0x10], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x18
jb 0x41bfb0
movzx eax, word [esp + 0x10]
test ax, ax
je 0x41c00b
lea ecx, [esp + 0x12]
mov esi, dword [esp + 8]
lea edx, [esp + 0x90]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41bff8
jmp 0x41c016
mov esi, dword [esp + 8]
lea edx, [esp + 0x90]
mov word [ebx], 0
cmp byte [esp + 0x8f], 0
jns 0x41c038
push dword [esp + 0x34]
call fcn.0040cee0
lea edx, [esp + 0x94]
add esp, 4
cmp edx, ebx
jne 0x41c0f6
mov dword [esp + 0x10], 0x61f067df
mov dword [esp + 0x14], 0x5df363fd
mov dword [esp + 0x18], 0x59c85fc5
mov dword [esp + 0x1c], 0x55d65bc3
mov dword [esp + 0x20], 0x515657c5
mov dword [esp + 0x24], 0
mov edx, 0x19
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 9]
mov ebx, eax
mov edi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x3d
mul cl
mov ecx, eax
mov eax, edi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0x83
mov byte [esp + edx - 9], al
inc edx
cmp edx, 0x31
jne 0x41c080
movzx eax, word [esp + 0x10]
lea edx, [esp + 0x90]
mov ebx, edx
test ax, ax
je 0x41c0f1
lea ecx, [esp + 0x12]
mov ebx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41c0e0
mov word [ebx], 0
sub ebx, edx
mov ecx, ebx
shr ecx, 2
mov eax, edx
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
lea edi, [esi + eax]
lea edx, [esp + eax]
add edx, 0x90
mov dword [esp + 4], ebx
mov eax, ebx
and eax, 3
mov ecx, eax
shr ecx, 1
mov esi, edx
mov ebx, edi
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov ecx, eax
xor ecx, 0xfffffffe
or eax, 1
and eax, ecx
je 0x41c170
mov esi, edx
mov edx, ebx
mov ecx, dword [esp + 4]
and ecx, 2
movzx ebx, byte [esi + ecx]
mov byte [edx + ecx], bl
cmp eax, 1
je 0x41c170
movzx ebx, byte [esi + ecx + 1]
mov byte [edx + ecx + 1], bl
cmp eax, 2
je 0x41c170
movzx eax, byte [esi + ecx + 2]
mov byte [edx + ecx + 2], al
nop
nop
nop
nop
nop
nop
nop
nop
push 0xa
push 0xb
lea eax, [esp + 0x80]
push eax
push dword [esp + 0x3c]
call fcn.0041dde0
add esp, 0x10
mov dword [esp + 0x10], 0x535379a
mov dword [esp + 0x14], 0x85667468
mov word [esp + 0x18], 0
mov ecx, 0xe3
mov edx, 0x5097b91c
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0xd3]
mov esi, ebx
not esi
or esi, edx
mov edi, esi
not edi
or ebx, ecx
or ebx, edi
add ebx, esi
add bl, 0x92
mov byte [esp + ecx - 0xd3], bl
inc ecx
dec edx
cmp ecx, 0xed
jne 0x41c1b0
mov esi, dword [esp + 8]
mov ebx, dword [esp + 4]
add esi, ebx
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x41c20b
lea edx, [esp + 0x11]
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 0x41c200
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x41c22b
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 0x41c220
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 0x41c240
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x41c260
mov eax, 0xffffffff
jmp 0x41c269
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040ced0
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x41c2a1
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 0x41c290
mov dword [esp + 0x30], eax
inc esi
mov dword [esp + 8], esi
mov eax, edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0x9fcc99ab
mov dword [esp + 0x14], 0xa3d99df9
mov dword [esp + 0x18], 0xa7d2a192
mov dword [esp + 0x1c], 0xabdea5dc
mov word [esp + 0x20], 0xa9a8
lea ecx, [esp + 0x26]
mov byte [ecx - 2], 0
mov word [ecx - 4], 0
mov ecx, 0xe5
lea edx, [esp + 0x10]
nop
movzx esi, byte [edx]
lea edi, [ecx - 0x6df0c900]
or edi, esi
and esi, ecx
not edi
or edi, esi
mov esi, edi
and esi, 1
xor edi, 1
lea ebx, [edi + esi*2]
add bl, 0x7d
mov byte [edx], bl
inc edx
dec ecx
cmp ecx, 0xd0
jne 0x41c2f0
add eax, 2
movzx ecx, word [esp + 0x90]
test cx, cx
je 0x41c351
lea edx, [esp + 0x92]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41c340
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x41c383
lea edx, [esp + 0x12]
mov esi, dword [esp + 8]
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 0x41c370
jmp 0x41c387
mov esi, dword [esp + 8]
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0x58]
call fcn.00405cc0
add esp, 4
mov edi, eax
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x41c3a0
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0x38]
push ebx
call fcn.0040d710
mov dword [esp + 4], eax
push edi
call fcn.00405d50
add esp, 4
push ebx
call fcn.0040cee0
add esp, 4
lea ebx, [esp + 0x3c]
jmp 0x41b764
mov dword [esp + 0x5c], 0x1b0
je 0x41b6a7
mov dword [esp + 0x5c], 0x198
mov dword [esp + 0x54], 0x20
jne 0x41b6b1
jmp 0x41b6b9
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x4c]
and bl, 1
test eax, eax
je 0x41b6c9
cmp eax, dword [esp + 0x68]
je 0x41b6c9
push eax
call fcn.0040cee0
add esp, 4
mov dword [esp + 0x64], 0
jmp 0x41b6c9