Function at 0x41ad80
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 edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x15c], 0x79161f05
mov byte [esp + 0x160], 0x64
mov dword [esp + 0x161], 0
mov dword [esp + 0x164], 0
mov ecx, 0x3ffb8fe8
nop
nop
movzx edx, byte [esp + ecx - 0x3ffb8e8c]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0x78
mov byte [esp + ecx - 0x3ffb8e8c], dl
inc ecx
cmp ecx, 0x3ffb8ff4
jne 0x41ade0
mov esi, dword [esi]
movzx ecx, byte [esp + 0x15c]
test cl, cl
je 0x41ae2b
lea edx, [esp + 0x15d]
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41ae20
mov byte [esi], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
lea ecx, [esp + 0x60]
lea edx, [esp + 0x70]
lea ebx, [esp + 0x44]
push ecx
push edx
push ebx
push dword [edi + 0x10]
push eax
push dword [edi + 0xc]
call fcn.0041d990
add esp, 0x18
test al, al
je 0x41b460
mov dword [esp + 0x15c], 0xdbabbdbc
mov byte [esp + 0x160], 0xd0
mov dword [esp + 0x161], 0
mov eax, 0xaf2cc
mov ecx, 0xe6750d32
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0xaf170]
lea edi, [eax - 0x733fffff]
mov ebx, ecx
and ebx, 0x250467
and edi, 0x29018
or edi, ebx
xor edx, 0x8ced66e7
mov ebx, edx
and ebx, edi
add edx, edi
add ebx, ebx
sub edx, ebx
mov ebx, edx
and ebx, 0xfe
add ebx, edx
or edx, 1
sub ebx, edx
mov byte [esp + eax - 0xaf170], bl
inc eax
dec ecx
cmp eax, 0xaf2d5
jne 0x41aea0
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41af0b
lea ecx, [esp + 0x15d]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41af00
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 + 0x15c], 0xd2aade81
mov dword [esp + 0x160], 0xb5b6dbb0
mov dword [esp + 0x164], 0x8f83b2d5
mov dword [esp + 0x168], 0xb8b98687
mov dword [esp + 0x16c], 0x828bade8
mov dword [esp + 0x170], 0xb58e8c92
mov dword [esp + 0x174], 0xb4b5b2b3
mov dword [esp + 0x178], 0xaca1e9ea
mov dword [esp + 0x17c], 0x8a97e297
mov dword [esp + 0x180], 0xe8e88697
mov dword [esp + 0x184], 0x8eb184a4
mov dword [esp + 0x188], 0xcfe88dee
mov dword [esp + 0x18c], 0xd4fa92c8
mov dword [esp + 0x190], 0x8485cad6
mov dword [esp + 0x194], 0x9fd1da9b
mov dword [esp + 0x198], 0xc8c9d6d7
mov dword [esp + 0x19c], 0x92efed97
mov dword [esp + 0x1a0], 0xc0d5e4cd
mov dword [esp + 0x1a4], 0xc4c3e5f0
mov dword [esp + 0x1a8], 0xf1f9c6c7
mov dword [esp + 0x1ac], 0xfcfdfac6
mov dword [esp + 0x1b0], 0xbac3f6ff
mov dword [esp + 0x1b4], 0xe3e6c6fa
mov dword [esp + 0x1b8], 0xddfac5c6
mov dword [esp + 0x1bc], 0xecedeaeb
mov dword [esp + 0x1c0], 0xc2f2e6b3
mov dword [esp + 0x1c4], 0xb9e7b2e3
mov dword [esp + 0x1c8], 0x180dc4ef
mov dword [esp + 0x1cc], 0x1c1d1a1b
mov dword [esp + 0x1d0], 0x2c111e1f
mov dword [esp + 0x1d4], 0x164b4607
mov dword [esp + 0x1d8], 0x8091617
mov dword [esp + 0x1dc], 0x2b392855
mov dword [esp + 0x1e0], 0x175e1a0f
mov byte [esp + 0x1e4], 0xc0
mov dword [esp + 0x1e8], 0
mov dword [esp + 0x1e5], 0
mov eax, 0x66025a92
mov ecx, 0x99fda56d
nop
nop
nop
movzx ebx, byte [esp + eax - 0x66025936]
mov edx, eax
and edx, ebx
add edx, edx
sub edx, ebx
add edx, ecx
and edx, eax
lea edi, [ecx + edx*2]
inc edi
add edx, edx
not edx
add edx, eax
and edx, ebx
not ebx
and ebx, edi
sub edx, ebx
add dl, 0x26
mov byte [esp + eax - 0x66025936], dl
inc eax
dec ecx
cmp eax, 0x66025b22
jne 0x41b0d0
mov dword [esp + 0x90], 0xace2f2fe
mov dword [esp + 0x94], 0x74a1c704
mov dword [esp + 0x98], 0x1960bce4
mov dword [esp + 0x9c], 0x35363730
mov dword [esp + 0xa0], 0x318e3abf
mov dword [esp + 0xa4], 0x1509b0f0
mov dword [esp + 0xa8], 0x102033c
mov dword [esp + 0xac], 0xcd3688c8
mov dword [esp + 0xb0], 0xa8e24f81
mov dword [esp + 0xb4], 0x41424aaa
mov dword [esp + 0xb8], 0x5d5e5f40
mov dword [esp + 0xbc], 0x595a5b5c
mov dword [esp + 0xc0], 0x9cd2c2ce
mov dword [esp + 0xc4], 0x92d6e734
mov dword [esp + 0xc8], 0xea6f2b4e
mov dword [esp + 0xcc], 0xe5e6e7e0
mov dword [esp + 0xd0], 0x21ca1c2c
mov dword [esp + 0xd4], 0xed0a2b67
mov dword [esp + 0xd8], 0xf14d6024
mov dword [esp + 0xdc], 0x1df6f7f0
mov dword [esp + 0xe0], 0xf9fafbdc
mov dword [esp + 0xe4], 0x377337f8
mov dword [esp + 0xe8], 0x134f0b1c
mov dword [esp + 0xec], 0x5f4b0f28
mov dword [esp + 0xf0], 0xc9cacbc4
mov dword [esp + 0xf4], 0x290a5c04
mov dword [esp + 0xf8], 0xc15d1ccc
mov dword [esp + 0xfc], 0xd55c9e18
mov dword [esp + 0x100], 0xd9dadbd4
mov dword [esp + 0x104], 0x15dedfd8
mov dword [esp + 0x108], 0xbaa39d53
mov dword [esp + 0x10c], 0xa5a6a7a0
mov dword [esp + 0x110], 0x4d66266c
mov dword [esp + 0x114], 0x8a5967a8
mov byte [esp + 0x118], 0xac
mov byte [esp + 0x11b], 0
mov word [esp + 0x119], 0
mov eax, 0x537bc2c7
mov ecx, 0xac843d38
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x537bc237]
mov edx, eax
and edx, edi
add edx, edx
mov ebx, ecx
sub ebx, edi
add edi, eax
and ebx, edx
not edx
and edx, edi
sub edx, ebx
and edi, 1
or edx, 1
add edx, edi
add dl, 0x1c
mov byte [esp + eax - 0x537bc237], dl
inc eax
dec ecx
cmp eax, 0x537bc353
jne 0x41b2b0
lea eax, [esp + 0x15c]
lea edx, [esp + 0x90]
lea ecx, [esp + 0x148]
push eax
push 0x88
push edx
lea edi, [esp + 0x50]
push edi
call fcn.0043af30
mov dword [esp + 0x144], edx
mov dword [esp + 0x140], eax
or eax, edx
je 0x41b464
mov dword [esp + 0x15c], 0xc1687564
mov byte [esp + 0x160], 0xd4
mov dword [esp + 0x161], 0
mov word [esp + 0x165], 0
mov eax, 0xc25bf92e
movzx ecx, byte [esp + eax + 0x3da4082e]
xor ecx, eax
lea edx, [ecx + ecx]
and edx, 0x204032
xor ecx, 0xcbcbdde6
sub ecx, edx
lea edx, [ecx*2 + 2]
inc ecx
sub ecx, edx
inc cl
mov byte [esp + eax + 0x3da4082e], cl
inc eax
cmp eax, 0xc25bf939
jne 0x41b350
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41b3ab
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 0x41b3a0
mov byte [esi], 0
lea eax, [esp + 0x140]
lea ecx, [esp + 0x148]
push 0
push 8
push eax
push edi
call fcn.0043af30
mov dword [esp + 0x13c], edx
mov dword [esp + 0x138], eax
or eax, edx
je 0x41b464
mov dword [esp + 0x15c], 0x1bb8b8b6
mov byte [esp + 0x160], 0x20
mov dword [esp + 0x161], 0
mov byte [esp + 0x165], 0
mov eax, 0x79
mov ecx, 0x86
nop
nop
nop
movzx edi, byte [esp + eax + 0xe3]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0xa3
mov byte [esp + eax + 0xe3], dl
inc eax
dec ecx
cmp eax, 0x83
jne 0x41b410
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41b4f1
lea ecx, [esp + 0x15d]
mov edi, dword [ebp + 0x14]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b450
jmp 0x41b4f4
xor edi, edi
jmp 0x41b468
xor edx, edx
mov edi, edx
lea ecx, [esp + 0x44]
call fcn.00439950
mov dword [esp + 0x15c], 0x219a9185
mov byte [esp + 0x160], 0x14
mov dword [esp + 0x161], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0xc6
xor al, byte [esp + ecx + 0x15c]
add al, 0x22
mov byte [esp + ecx + 0x15c], al
inc ecx
cmp ecx, 9
jne 0x41b4a0
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41b4dd
lea ecx, [esp + 0x15d]
mov edx, edi
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b4d0
jmp 0x41b4df
mov edx, edi
mov byte [esi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [ebp + 0x14]
mov byte [esi], 0
lea eax, [esp + 0x138]
lea edx, [esp + 0x64]
lea ecx, [esp + 0x44]
push 0
push 8
push eax
push edx
call fcn.0043a3e0
mov eax, dword [esp + 0x64]
xor edx, edx
cmp eax, dword [esp + 0x68]
je 0x41b466
mov dword [esp + 0x15c], 0xe311e11d
mov dword [esp + 0x160], 0xe702e501
mov dword [esp + 0x164], 0xfb1ff91f
mov dword [esp + 0x168], 0xff1bfdc2
mov dword [esp + 0x16c], 0xf317f178
mov dword [esp + 0x170], 0xf5f4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
xor eax, 0x57
mov ecx, edx
or ecx, 0xa8
and eax, ecx
add eax, ecx
xor al, byte [esp + edx + 0x15c]
add al, 0xb8
mov byte [esp + edx + 0x15c], al
inc edx
cmp edx, 0x18
jne 0x41b570
mov eax, dword [edi + 0xc]
xor ecx, ecx
nop
nop
nop
nop
movzx edx, word [eax + ecx]
movzx edi, word [esp + ecx + 0x15c]
test dx, dx
je 0x41b5b9
add ecx, 2
cmp dx, di
je 0x41b5a0
mov word [esp + 0xe], di
mov word [esp + 0x36], dx
mov dword [esp + 0x15c], 0x89666571
mov byte [esp + 0x160], 0xac
mov dword [esp + 0x161], 0
mov dword [esp + 0x164], 0
mov eax, 0xbf4777dc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x40b88980]
mov edx, eax
or edx, ecx
mov edi, ecx
not edi
or edi, eax
add ecx, edi
inc ecx
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
add ecx, 0x439aa8b3
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax + 0x40b88980], cl
inc eax
cmp eax, 0xbf4777e8
jne 0x41b600
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41b66d
lea ecx, [esp + 0x15d]
movzx edi, word [esp + 0xe]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b660
jmp 0x41b672
movzx edi, word [esp + 0xe]
mov byte [esi], 0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x120], ecx
xor edx, edx
cmp eax, ecx
je 0x41b466
mov dword [esp + 0x40], 0x1a8
cmp word [esp + 0x36], di
je 0x41c37f
mov dword [esp + 0x40], 0x190
mov dword [esp + 0x5c], 0x1b0
jne 0x41c38d
mov dword [esp + 0x54], 0x20
je 0x41b6c9
mov dword [esp + 0x54], 0x10
lea ebx, [esp + 0x44]
jmp 0x41b6eb
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x124]
add eax, 8
cmp eax, dword [esp + 0x120]
je 0x41c3a8
mov dword [esp + 0x58], edx
mov ecx, dword [eax]
mov dword [esp + 0x38], 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.0040cf20
add esp, 0xc
xor edi, edi
jmp 0x41b73c
lea ebx, [esp + 0x44]
mov eax, edi
and eax, 1
mov ecx, edi
xor ecx, 1
lea eax, [ecx + eax*2]
cmp edi, 0xa
mov edi, eax
jae 0x41b970
mov ecx, ebx
push 0
push 0
push dword [esp + 0x64]
lea eax, [esp + 0x168]
push eax
push dword [esp + 0x14]
push dword [esp + 0x4c]
call fcn.0043a170
test eax, eax
js 0x41b724
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 + 0x40]
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
nop
nop
mov byte [esi + eax], cl
movzx ecx, byte [esp + eax + 0x79]
inc eax
test cl, cl
jne 0x41b7c0
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x22e]
test cl, cl
jne 0x41b990
cmp byte [esp + 0x22c], 0
jne 0x41b7ff
mov edx, dword [esp + 0x19c]
or edx, dword [esp + 0x1a0]
je 0x41b990
add esi, eax
mov dword [esp + 0x90], 0xc7657c4d
mov byte [esp + 0x94], 0xd8
lea eax, [esp + 0x95]
mov word [eax + 4], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x90]
lea edx, [eax - 0x3bd225d1]
xor edx, ecx
add edx, 0x2b1abd14
mov ecx, edx
xor ecx, 0xfe
or edx, 1
and ecx, edx
add ecx, edx
mov byte [esp + eax + 0x90], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0xb
jb 0x41b830
movzx eax, byte [esp + 0x90]
test al, al
je 0x41b88b
lea ecx, [esp + 0x91]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b880
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x90], 0x40474645
lea eax, [esp + 0x95]
mov byte [eax + 1], 0
mov word [eax - 1], 0
xor eax, eax
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x90]
lea ecx, [eax - 0x7d4c3d6f]
mov ebx, 0x3d4c3d6e
sub ebx, eax
and ebx, 0x3d48040a
and ecx, 0x82830015
or ecx, ebx
xor ecx, edx
mov edx, ecx
and edx, 1
xor ecx, 0x8b
lea ecx, [ecx + edx*2]
add cl, 0x2a
mov byte [esp + eax + 0x90], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 7
jb 0x41b8c0
mov eax, dword [0x44c2b0]
test eax, eax
je 0x41b720
mov ecx, dword [esp + 0x90]
xor edx, edx
mov ebx, dword [0x44c2b4]
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x3568c09b
je 0x41b943
inc edx
cmp eax, edx
jne 0x41b930
jmp 0x41b720
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x41b720
lea ecx, [esp + 0x10]
push ecx
push 0
push 1
push eax
push dword [0x44c2b8]
call fcn.0043ca30
add esp, 0x14
jmp 0x41b720
movzx ecx, byte [esp + 0x22e]
test cl, cl
jne 0x41b99a
jmp 0x41b6d0
add esi, eax
test cl, cl
je 0x41b6d0
call fcn.00405070
mov dword [esp + 0x38], eax
push eax
call fcn.00404a30
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x90], 0x27414d4b
mov byte [esp + 0x94], 0x28
lea eax, [esp + 0x95]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x99ccbb7
mov edi, 8
nop
nop
mov edx, edi
and edx, 0x2b
mov ebx, eax
and ebx, 0x54
or ebx, edx
xor ebx, 0x2b
lea edx, [eax - 0x99ccb00]
or edx, ebx
mov ecx, edi
and ecx, 0x32
mov ebx, eax
and ebx, 0xcd
or ebx, ecx
movzx ecx, byte [esp + eax - 0x99ccb27]
and edx, ecx
xor ebx, 0x32
or ebx, ecx
xor ebx, edx
add bl, 0x6d
mov byte [esp + eax - 0x99ccb27], bl
inc eax
dec edi
cmp eax, 0x99ccbc1
jne 0x41b9e0
movzx eax, byte [esp + 0x90]
test al, al
je 0x41ba4b
lea ecx, [esp + 0x91]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ba40
mov byte [esi], 0
mov eax, dword [esp + 0x194]
mov edx, dword [esp + 0x198]
xor ebx, ebx
mov ecx, eax
or ecx, edx
je 0x41bab0
lea ecx, [esp + 0x44]
push 0
push 0
push 0x40
lea edi, [esp + 0x9c]
push edi
push edx
push eax
call fcn.0043a170
test eax, eax
js 0x41bab4
xor eax, eax
movzx ecx, word [esp + 0xe]
cmp word [esp + 0x36], cx
sete al
lea ecx, [esp + 0x44]
mov edx, edi
push eax
push dword [esp + 8]
call fcn.0041e4d0
add esp, 8
jmp 0x41bab6
xor edi, edi
jmp 0x41bab8
xor eax, eax
mov edi, eax
mov dword [esp + 0x90], 0xe1444441
mov byte [esp + 0x94], 0xf4
lea eax, [esp + 0x95]
mov dword [eax + 3], 0
mov dword [eax], 0
nop
lea eax, [ebx + ebx]
mov edx, eax
and edx, 0xc
mov ecx, ebx
xor ecx, 0x56
add ecx, edx
xor cl, byte [esp + ebx + 0x90]
add cl, 0x52
mov byte [esp + ebx + 0x90], cl
and eax, 2
mov ecx, eax
and ecx, ebx
or eax, ebx
xor eax, 1
add eax, ecx
mov ebx, eax
cmp eax, 0xc
jb 0x41bae0
movzx eax, byte [esp + 0x90]
test al, al
je 0x41bb40
lea ecx, [esp + 0x91]
lea ebx, [esp + 0x44]
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41bb30
jmp 0x41bb44
lea ebx, [esp + 0x44]
mov byte [esi], 0
push dword [esp + 4]
call fcn.00404e70
add esp, 4
test eax, eax
setne cl
mov edx, edi
and cl, dl
cmp cl, 1
jne 0x41bce0
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.0043a170
test eax, eax
js 0x41bfb0
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.0043a170
test eax, eax
js 0x41bfb0
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.0043a170
test eax, eax
js 0x41bfb0
cmp byte [esp + 0x8f], 0
lea ebx, [esp + 0x78]
js 0x41bce9
mov dword [esp + 0x10], 0xff69f90d
mov dword [esp + 0x14], 0xe374fd19
mov dword [esp + 0x18], 0xe722e1c0
mov dword [esp + 0x1c], 0xeb7ee505
mov dword [esp + 0x20], 0xef12e909
mov word [esp + 0x24], 0xedec
mov dword [esp + 0x26], 0
mov eax, 0x2426bdaa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x2426bd9a]
xor ecx, eax
mov edx, ecx
not edx
add ecx, 0xad
and edx, 1
or ecx, 1
add ecx, edx
mov byte [esp + eax - 0x2426bd9a], cl
inc eax
cmp eax, 0x2426bdc4
jne 0x41bc60
movzx edi, word [esp + 0x10]
test di, di
mov dword [esp + 0x11c], ebx
je 0x41bd1d
lea eax, [esp + 0x10]
mov edx, ebx
mov dword [esp + 4], ebx
jmp 0x41bcb8
movzx edi, word [eax]
test di, di
je 0x41bd36
movzx ebx, word [edx]
test bx, bx
je 0x41bd28
add edx, 2
add eax, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp bx, di
je 0x41bcd8
mov dword [esp + 4], ecx
mov edx, ecx
je 0x41bcb0
lea eax, [esp + 0x10]
jmp 0x41bcb0
mov dword [esp + 4], edx
jmp 0x41c363
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov eax, ecx
or eax, edx
je 0x41bfb0
mov edi, dword [esp + 0x80]
mov ebx, edi
inc ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
jns 0x41bdf3
mov eax, 0xffffffff
jmp 0x41bdfa
mov eax, ebx
lea edx, [esp + 0x90]
jmp 0x41bd4b
lea ebx, [esp + 0x90]
mov edx, ebx
jmp 0x41bf7b
lea ebx, [esp + 0x90]
mov edx, ebx
mov eax, dword [esp + 4]
test eax, eax
je 0x41bf7b
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x41bf7b
lea ecx, [eax + 0x14]
mov dword [esp + 8], ecx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x41bd8a
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x41bd70
mov ebx, edx
jmp 0x41bf7b
mov ebx, edx
test ecx, ecx
mov edi, dword [esp + 8]
je 0x41bec1
sar ecx, 1
mov eax, ecx
and eax, 3
je 0x41be48
mov ebx, edx
xor edx, edx
mov dword [esp + 0x3c], eax
nop
nop
nop
mov edi, dword [esp + 8]
movzx eax, word [edi]
mov word [esp + 4], ax
xor eax, eax
cmp word [esp + 4], 0
setne al
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], edi
movzx edi, word [esp + 4]
mov word [ebx], di
add ebx, 2
inc edx
cmp eax, edx
jne 0x41bdb0
mov eax, ecx
sub eax, edx
lea edx, [esp + 0x90]
mov edi, dword [esp + 8]
jmp 0x41be4c
lea eax, [edi*2 + 2]
push eax
call fcn.0040cdc0
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 + 0x44]
push 0
push 0
push ebx
mov ebx, eax
push eax
push dword [esp + 0x18]
push dword [esp + 0x18]
call fcn.0043a170
test eax, eax
jns 0x41bc15
jmp 0x41bfb0
mov ebx, edx
mov eax, ecx
dec ecx
cmp ecx, 3
jb 0x41bec1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], 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 + 4]
mov word [ebx + 6], cx
add ebx, 8
add eax, 0xfffffffc
jne 0x41be60
lea edx, [esp + 0x90]
mov word [ebx], 0
mov eax, dword [esp + 0x40]
cmp byte [esp + eax + 0x15c], 0
jne 0x41bf7b
mov dword [esp + 0x10], 0xb77f89a8
mov dword [esp + 0x14], 0xb35db526
mov dword [esp + 0x18], 0xbf55b123
mov dword [esp + 0x1c], 0xbb53bd2e
mov dword [esp + 0x20], 0xa735b924
mov word [esp + 0x24], 0xa5a4
lea eax, [esp + 0x26]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0x5761a45e
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x5761a44e]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x2a
mov byte [esp + eax - 0x5761a44e], cl
inc eax
cmp eax, 0x5761a477
jne 0x41bf20
movzx eax, word [esp + 0x10]
test ax, ax
je 0x41bf6f
lea ecx, [esp + 0x12]
lea edx, [esp + 0x90]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41bf5c
jmp 0x41bf76
lea edx, [esp + 0x90]
mov word [ebx], 0
cmp byte [esp + 0x8f], 0
mov edi, edx
jns 0x41bf9d
push dword [esp + 0x11c]
call fcn.0040cdd0
lea edi, [esp + 0x94]
add esp, 4
cmp edi, ebx
jne 0x41c076
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], 0x19a81b4b
mov dword [esp + 0x14], 0x65d767b5
mov dword [esp + 0x18], 0x61d063cd
mov dword [esp + 0x1c], 0x6dd26fd7
mov dword [esp + 0x20], 0x696a6bdd
mov word [esp + 0x24], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x10]
lea edx, [eax - 0x2de417c5]
mov ebx, ecx
not ebx
lea edi, [ecx + ecx]
not edi
add edi, ecx
or edi, edx
not edi
lea ecx, [ecx + ebx*2]
inc ecx
and ecx, edx
or ecx, edi
mov edx, ecx
not edx
mov edi, ecx
and edi, 1
or ecx, 1
or edx, 0xfe
add ecx, 0xd8
and ecx, edx
lea ecx, [ecx + edi*2]
mov byte [esp + eax + 0x10], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x16
jb 0x41bff0
movzx eax, word [esp + 0x10]
lea edi, [esp + 0x90]
mov ebx, edi
test ax, ax
je 0x41c071
lea ecx, [esp + 0x12]
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 0x41c060
mov word [ebx], 0
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 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
lea edi, [esi + eax]
add eax, esp
add eax, 0x90
shr ecx, 1
mov dword [esp + 0x3c], eax
mov dword [esp + 8], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x41c0ce
and edx, 0xfffffffe
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + edx]
mov ecx, dword [esp + 8]
mov byte [ecx + edx], al
push 0xa
push 0xb
lea eax, [esp + 0x80]
push eax
push dword [esp + 0x3c]
call fcn.0041e310
add esp, 0x10
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], 0x7d656b0e
mov dword [esp + 0x14], 0xd223420
mov word [esp + 0x18], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x10]
lea edx, [ecx - 0x2096dd7f]
mov edi, edx
and edi, ebx
xor edx, ebx
lea eax, [edx + edi*2]
add edi, edi
mov ebx, eax
not ebx
and ebx, edi
not edi
and edi, eax
sub edi, ebx
and edx, 1
xor edi, 1
lea eax, [edi + edx*2]
add al, 0x7a
mov byte [esp + ecx + 0x10], al
lea eax, [ecx + ecx]
and eax, 2
mov edx, eax
and edx, ecx
xor eax, ecx
xor eax, 1
lea ecx, [eax + edx*2]
cmp ecx, 0xa
jb 0x41c110
mov ebx, dword [esp + 4]
add esi, ebx
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x41c17d
lea edx, [esp + 0x11]
mov eax, dword [ebp + 0x14]
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41c170
jmp 0x41c180
mov eax, dword [ebp + 0x14]
mov byte [esi], 0
mov edx, dword [esp + 0x30]
movzx ecx, byte [edx]
test cl, cl
je 0x41c19b
inc edx
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41c190
mov byte [esi], 0xa
mov edi, dword [eax]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne 0x41c1b0
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 0x41c1e1
mov eax, 0xffffffff
jmp 0x41c1ea
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040cdc0
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x41c221
add edi, 2
mov edx, eax
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 0x41c210
mov dword [esp + 0x30], eax
inc esi
mov dword [esp + 4], edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0x23fc21df
mov dword [esp + 0x14], 0x27912581
mov dword [esp + 0x18], 0x3b8e39c6
mov dword [esp + 0x1c], 0x3f8a3db4
mov word [esp + 0x20], 0x3130
lea ecx, [esp + 0x26]
mov byte [ecx - 2], 0
mov word [ecx - 4], 0
mov ecx, 0xe310aec8
mov ebx, 7
nop
nop
movzx eax, byte [esp + ecx + 0x1cef5148]
mov edx, ebx
and edx, 0xa
mov edi, ecx
and edi, 0x35
or edi, edx
xor edi, ecx
xor edi, eax
xor edi, 0xca
and edi, eax
xor edi, ecx
mov edx, edi
and edx, 1
xor edi, 1
lea edx, [edi + edx*2]
add dl, 0x17
mov byte [esp + ecx + 0x1cef5148], dl
inc ecx
dec ebx
cmp ecx, 0xe310aedd
jne 0x41c270
mov eax, dword [esp + 4]
add eax, 2
movzx ecx, word [esp + 0x90]
test cx, cx
je 0x41c2e1
lea edx, [esp + 0x92]
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41c2d0
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x41c311
lea edx, [esp + 0x12]
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 0x41c300
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0x38]
call fcn.00405c50
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x41c330
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0x38]
push ebx
call fcn.0040d6c0
mov dword [esp + 4], eax
push edi
call fcn.00405ce0
add esp, 4
push ebx
call fcn.0040cdd0
add esp, 4
lea ebx, [esp + 0x44]
push dword [esp + 0x38]
call fcn.00404eb0
add esp, 4
mov edx, dword [esp + 0x58]
and dl, 1
or dl, byte [esp + 4]
jmp 0x41b6d4
mov dword [esp + 0x5c], 0x1b0
je 0x41b6b7
mov dword [esp + 0x5c], 0x198
mov dword [esp + 0x54], 0x20
jne 0x41b6c1
jmp 0x41b6c9
mov eax, dword [esp + 0x64]
and dl, 1
test eax, eax
je 0x41b466
cmp eax, dword [esp + 0x68]
je 0x41b466
push eax
mov edi, edx
call fcn.0040cdd0
mov edx, edi
add esp, 4
mov dword [esp + 0x64], 0
jmp 0x41b466