Function at 0x41eb80
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, 0x2e0
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x140], 0x8f666977
mov byte [esp + 0x144], 0x98
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xdb
xor dl, byte [esp + ecx + 0x140]
add dl, 0xb9
mov byte [esp + ecx + 0x140], dl
inc ecx
cmp ecx, 0xb
jne 0x41ebe0
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ecx]
movzx ecx, byte [esp + 0x140]
test cl, cl
je 0x41ec2b
lea edx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41ec20
mov byte [ebx], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
lea ecx, [esp + 0x48]
lea edx, [esp + 0x58]
lea eax, [esp + 0x38]
xor edi, edi
push ecx
push edx
push eax
push dword [esi + 0x10]
push dword [ebp + 0x10]
push dword [esi + 0xc]
call fcn.00421050
add esp, 0x18
test al, al
je 0x41f1dd
mov dword [esp + 0x140], 0x1bbbb5b4
mov byte [esp + 0x144], 0x20
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
mov eax, 0x1dc358b9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x1dc35779]
mov ecx, eax
and ecx, edx
xor edx, eax
lea edx, [edx + ecx*2]
add ecx, ecx
mov edi, edx
xor edi, ecx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
add cl, 0x63
mov byte [esp + eax - 0x1dc35779], cl
inc eax
cmp eax, 0x1dc358c4
jne 0x41ecb0
movzx eax, byte [esp + 0x140]
test al, al
je 0x41ed0b
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ed00
mov dword [esp + 8], ebx
mov byte [ebx], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x134], edx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x138], eax
mov dword [esp + 0x60], 0xeab4cfef
mov dword [esp + 0x64], 0x5019afc2
mov dword [esp + 0x68], 0x4610202a
mov dword [esp + 0x6c], 0x28292627
mov dword [esp + 0x70], 0x2e441d47
mov dword [esp + 0x74], 0x4b4a495b
mov dword [esp + 0x78], 0x34353233
mov dword [esp + 0x7c], 0x23420d58
mov dword [esp + 0x80], 0x4d30430d
mov dword [esp + 0x84], 0x2390951
mov dword [esp + 0x88], 0x723e0f15
mov dword [esp + 0x8c], 0x3d70101c
mov dword [esp + 0x90], 0x783e086e
mov dword [esp + 0x94], 0x2905393b
mov dword [esp + 0x98], 0x161c7b11
mov dword [esp + 0x9c], 0x18191617
mov dword [esp + 0xa0], 0x727f7d77
mov dword [esp + 0xa4], 0x6055041d
mov dword [esp + 0xa8], 0x64630570
mov dword [esp + 0xac], 0x51696667
mov dword [esp + 0xb0], 0x6c6d6a63
mov dword [esp + 0xb4], 0x94a616f
mov dword [esp + 0xb8], 0x7a4e754a
mov dword [esp + 0xbc], 0xa0f417a
mov dword [esp + 0xc0], 0x7c7d7a7b
mov dword [esp + 0xc4], 0x22724613
mov dword [esp + 0xc8], 0x29473243
mov dword [esp + 0xcc], 0x487d247f
mov dword [esp + 0xd0], 0x4c4d4a4b
mov dword [esp + 0xd4], 0x5c514e4f
mov dword [esp + 0xd8], 0x563b2667
mov dword [esp + 0xdc], 0x58595657
mov dword [esp + 0xe0], 0x3b493835
mov dword [esp + 0xe4], 0x97ce6a5f
mov byte [esp + 0xe8], 0x60
mov byte [esp + 0xeb], 0
mov word [esp + 0xe9], 0
mov eax, 0x770da5fa
movzx edx, byte [esp + eax - 0x770da59a]
lea ecx, [eax - 0x770da500]
and ecx, edx
mov edi, ecx
or edi, 0xfffffffd
inc edi
mov ebx, ecx
and ebx, 0xfffffffd
imul ebx, edi
mov edi, ecx
and edi, 2
or ecx, 2
imul ecx, edi
add ebx, edx
sub ebx, ecx
add ebx, eax
mov ecx, ebx
and ecx, 0x74
xor ebx, 0x74
lea ecx, [ebx + ecx*2]
add cl, 0xaa
mov byte [esp + eax - 0x770da59a], cl
inc eax
cmp eax, 0x770da686
jne 0x41eeb0
mov dword [esp + 0x140], 0x6c22323e
mov dword [esp + 0x144], 0xb461c784
mov dword [esp + 0x148], 0x99a07c24
mov dword [esp + 0x14c], 0xf5f6f7f0
mov dword [esp + 0x150], 0xf10efa7f
mov dword [esp + 0x154], 0x95897030
mov dword [esp + 0x158], 0x818283fc
mov dword [esp + 0x15c], 0x4df60848
mov dword [esp + 0x160], 0x68a2cf01
mov dword [esp + 0x164], 0xc1c2ca6a
mov dword [esp + 0x168], 0xdddedfc0
mov dword [esp + 0x16c], 0xd9dadbdc
mov dword [esp + 0x170], 0x1c52424e
mov dword [esp + 0x174], 0x1256a7f4
mov dword [esp + 0x178], 0xaa2f6bce
mov dword [esp + 0x17c], 0xa5a6a7a0
mov dword [esp + 0x180], 0x61ca9c6c
mov dword [esp + 0x184], 0xad8a6b27
mov dword [esp + 0x188], 0xb14d2064
mov dword [esp + 0x18c], 0x9db6b7b0
mov dword [esp + 0x190], 0xb9babbdc
mov dword [esp + 0x194], 0x773377b8
mov dword [esp + 0x198], 0x93cf8b9c
mov dword [esp + 0x19c], 0xdfcb8f68
mov dword [esp + 0x1a0], 0x494a4b44
mov dword [esp + 0x1a4], 0x698adc84
mov dword [esp + 0x1a8], 0x41dd9c4c
mov dword [esp + 0x1ac], 0x55dc1e98
mov dword [esp + 0x1b0], 0x595a5b54
mov dword [esp + 0x1b4], 0x955e5f58
mov dword [esp + 0x1b8], 0x7a631dd3
mov dword [esp + 0x1bc], 0x65666760
mov dword [esp + 0x1c0], 0x4da6e6ac
mov dword [esp + 0x1c4], 0xa59a768
mov byte [esp + 0x1c8], 0x6c
mov word [esp + 0x1cd], 0
mov dword [esp + 0x1c9], 0
mov eax, 0x6b62dca7
mov ecx, 0x949d235a
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0x6b62db67]
mov edx, eax
and edx, ebx
add edx, edx
mov edi, ebx
sub edi, edx
add edi, eax
sub edx, ebx
add edx, ecx
mov ebx, edx
not ebx
and ebx, 1
and edx, 1
and edi, 0xfe
or edi, edx
lea edx, [edi + ebx*2]
add dl, 0xbc
mov byte [esp + eax - 0x6b62db67], dl
inc eax
dec ecx
cmp eax, 0x6b62dd36
jne 0x41f0a0
lea eax, [esp + 0x60]
lea edx, [esp + 0x140]
lea ecx, [esp + 0x130]
push eax
push 0x88
push edx
lea eax, [esp + 0x44]
push eax
call fcn.0043fd30
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
xor ecx, ecx
or eax, edx
je 0x41f1ea
mov dword [esp + 0x140], 0x21b8b544
mov byte [esp + 0x144], 0x34
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + edx + 0x140]
mov dword [esp + 0xc], edi
mov esi, ecx
and ecx, 0xc
mov eax, edx
xor eax, 0x83525536
add eax, ecx
mov ecx, eax
and ecx, edi
mov edi, ecx
and edi, 0x7d
mov ebx, ecx
or ebx, 0xfffffffd
inc ebx
imul ebx, edi
mov edi, ecx
and edi, 2
or ecx, 2
imul ecx, edi
sub ebx, ecx
mov ecx, esi
add eax, dword [esp + 0xc]
add ebx, eax
and eax, 1
or ebx, 1
add ebx, eax
add bl, 0xf1
mov byte [esp + edx + 0x140], bl
inc edx
add ecx, 2
cmp edx, 0xb
jne 0x41f150
movzx eax, byte [esp + 0x140]
test al, al
je 0x41f1f5
lea ecx, [esp + 0x141]
mov ebx, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f1d0
jmp 0x41f1f9
mov dword [esp + 0x30], 0
jmp 0x41fe03
mov ebx, dword [esp + 8]
xor edi, edi
jmp 0x41fdff
mov ebx, dword [esp + 8]
mov byte [ebx], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
lea eax, [esp + 0x44]
push eax
call fcn.0043fd30
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x41f2dd
mov esi, ebx
mov dword [esp + 0x140], 0x3b989896
mov byte [esp + 0x144], 0x20
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
mov eax, 0x89
mov ecx, 0xf5db9e76
movzx edi, byte [esp + eax + 0xb7]
mov ebx, ecx
and ebx, 0xa1099c0c
mov edx, eax
and edx, 0x93
or edx, ebx
mov ebx, ecx
or ebx, edi
xor edx, edi
xor edx, 0x54d202f3
and edx, ebx
mov edi, 0x8d6a9bc9
sub edi, edx
mov edx, edi
and edx, 0x52
xor edi, 0x52
lea edx, [edi + edx*2]
add dl, 0x37
mov byte [esp + eax + 0xb7], dl
inc eax
dec ecx
cmp eax, 0x91
jne 0x41f260
movzx eax, byte [esp + 0x140]
test al, al
je 0x41f2e6
lea ecx, [esp + 0x141]
mov ebx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f2d0
jmp 0x41f2e8
xor ecx, ecx
xor edi, edi
jmp 0x41fdff
mov ebx, esi
mov byte [ebx], 0
lea eax, [esp + 0x120]
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x38]
push 0
push 8
push eax
push edx
call fcn.0043f270
mov eax, dword [esp + 0x4c]
xor ecx, ecx
cmp eax, dword [esp + 0x50]
mov edi, 0
je 0x41fdff
mov dword [esp + 0x140], 0xf91e1d01
mov byte [esp + 0x144], 0xe4
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x28
xor al, byte [esp + ecx + 0x140]
add al, 0x38
mov byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0xc
jne 0x41f350
movzx eax, byte [esp + 0x140]
test al, al
je 0x41f38b
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f380
mov byte [ebx], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x108], ecx
cmp eax, ecx
je 0x41fdfd
xor ecx, ecx
lea esi, [esp + 0x38]
jmp 0x41f3e6
mov dword [esp + 4], 0
push dword [esp + 0xc]
call fcn.00404ba0
add esp, 4
mov ecx, dword [esp + 0x30]
and cl, 1
or cl, byte [esp + 4]
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x41fdd5
mov dword [esp + 0x30], ecx
mov ecx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0040ca90
add esp, 0xc
xor eax, eax
jmp 0x41f434
mov ebx, dword [esp + 8]
xor edi, edi
mov eax, dword [esp + 0xc]
inc eax
cmp eax, 0xb
je 0x41f600
mov dword [esp + 0xc], eax
mov ecx, esi
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x18]
call fcn.0043f100
test eax, eax
js 0x41f426
movzx eax, byte [esp + 0x210]
movzx ecx, byte [esp + 0x211]
or al, 0x30
mov byte [esp + 0xf0], al
or cl, 0x30
mov byte [esp + 0xf1], cl
movzx ecx, byte [esp + 0x212]
or cl, 0x30
mov byte [esp + 0xf2], cl
movzx ecx, byte [esp + 0x2d0]
or cl, 0x30
mov byte [esp + 0xf3], cl
mov word [esp + 0xf4], 0xa
xor ecx, ecx
nop
mov byte [ebx + ecx], al
movzx eax, byte [esp + ecx + 0xf1]
inc ecx
test al, al
jne 0x41f4b0
mov byte [ebx + ecx], 0
cmp byte [esp + 0x212], 0
jne 0x41f620
add ebx, ecx
mov dword [esp + 0x60], 0x96b6077
mov byte [esp + 0x64], 4
lea eax, [esp + 0x65]
mov word [eax + 4], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor byte [esp + eax + 0x60], al
inc eax
cmp eax, 0xb
jne 0x41f500
movzx eax, byte [esp + 0x60]
test al, al
je 0x41f52b
lea ecx, [esp + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f520
mov dword [esp + 8], ebx
mov byte [ebx], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x60], 0x14151a1b
mov dword [esp + 0x64], 0
mov esi, 6
mov ecx, 0x39
nop
nop
nop
nop
movzx edi, byte [esp + esi + 0x5a]
mov edx, edi
mov ebx, edi
xor ebx, 0x78
or edi, 0x87
and edi, ebx
mov ebx, ecx
and ebx, 0x38
mov eax, esi
and eax, 7
or eax, ebx
not edx
and edx, 0x78
or edx, edi
xor edx, eax
add dl, 0xa2
mov byte [esp + esi + 0x5a], dl
inc esi
dec ecx
cmp esi, 0xe
jne 0x41f560
mov eax, dword [0x4506dc]
test eax, eax
lea esi, [esp + 0x38]
je 0x41f420
mov ecx, dword [esp + 0x60]
xor edx, edx
mov edi, dword [0x4506e0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x41f5d3
inc edx
cmp eax, edx
jne 0x41f5c0
jmp 0x41f420
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x41f420
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x4506e4]
push eax
call fcn.00440b10
add esp, 0x14
jmp 0x41f420
cmp byte [esp + 0x212], 0
jne 0x41f622
mov ecx, dword [esp + 0x30]
jmp 0x41f3cf
add ebx, ecx
call fcn.00404d60
mov dword [esp + 0xc], eax
push eax
call fcn.00404720
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x60], 0x9afb3a9
mov byte [esp + 0x64], 0x6c
lea eax, [esp + 0x65]
mov word [eax + 4], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x3c
xor cl, byte [esp + eax + 0x60]
add cl, 0xd4
mov byte [esp + eax + 0x60], cl
inc eax
cmp eax, 0xb
jne 0x41f660
movzx eax, byte [esp + 0x60]
test al, al
lea esi, [esp + 0x60]
je 0x41f69b
lea ecx, [esp + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f690
mov byte [ebx], 0
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
mov ecx, eax
or ecx, edx
je 0x41f6e0
lea edi, [esp + 0x38]
mov ecx, edi
push 0
push 0
push 0x40
push esi
push edx
push eax
call fcn.0043f100
test eax, eax
js 0x41f6ec
mov ecx, edi
mov edx, esi
push dword [esp + 4]
call fcn.00421920
add esp, 4
mov dword [esp + 8], eax
jmp 0x41f6f4
mov eax, ebx
mov dword [esp + 8], 0
jmp 0x41f6f6
mov dword [esp + 8], 0
mov eax, ebx
mov dword [esp + 0x60], 0x99043c39
mov byte [esp + 0x64], 0x9c
lea ecx, [esp + 0x65]
mov byte [ecx + 2], 0
mov word [ecx], 0
mov ecx, 0xa4fa12ef
mov edi, 0x5b05ed10
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x5b05ed71]
mov edx, edi
and edx, 0x5301e80b
mov ebx, ecx
and ebx, 0xa45810f4
sub ebx, edx
mov edx, ebx
and edx, esi
add ebx, esi
add edx, edx
sub ebx, edx
add bl, 0x8c
mov byte [esp + ecx + 0x5b05ed71], bl
inc ecx
dec edi
cmp ecx, 0xa4fa12f7
jne 0x41f720
movzx ecx, byte [esp + 0x60]
test cl, cl
je 0x41f780
lea edx, [esp + 0x61]
mov ebx, eax
xor edi, edi
lea esi, [esp + 0x38]
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41f770
jmp 0x41f788
mov ebx, eax
xor edi, edi
lea esi, [esp + 0x38]
mov byte [ebx], 0
cmp byte [esp + 8], 0
je 0x41f3b0
push dword [esp + 4]
call fcn.00404b60
add esp, 4
test eax, eax
je 0x41f912
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
mov ecx, esi
push 0
push 0
push 8
lea edi, [esp + 0x124]
push edi
push edx
push eax
call fcn.0043f100
test eax, eax
js 0x41f9e0
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, esi
push 0
push 0
push 8
lea edi, [esp + 0x11c]
push edi
push edx
push eax
call fcn.0043f100
test eax, eax
js 0x41f9e0
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, esi
push 0
push 0
push 0x18
lea edi, [esp + 0xfc]
push edi
push edx
push eax
call fcn.0043f100
test eax, eax
js 0x41f9e0
cmp byte [esp + 0x107], 0
lea edi, [esp + 0xf0]
js 0x41f91d
mov dword [esp + 0x10], 0x77e909b5
mov dword [esp + 0x14], 0x73ec75d9
mov dword [esp + 0x18], 0x7f327110
mov dword [esp + 0x1c], 0x7be67ddd
mov dword [esp + 0x20], 0x67c279d9
mov word [esp + 0x24], 0x6564
mov dword [esp + 0x26], 0
mov eax, 0x3e
mov ecx, 1
nop
nop
nop
mov esi, ecx
and esi, 3
mov edx, eax
and edx, 0x7c
or edx, esi
xor dl, byte [esp + eax - 0x2e]
xor dl, 3
add dl, 0xca
mov byte [esp + eax - 0x2e], dl
inc eax
dec ecx
cmp eax, 0x58
jne 0x41f8a0
movzx ebx, word [esp + 0x10]
test bx, bx
mov dword [esp + 0x34], edi
je 0x41f978
lea eax, [esp + 0x10]
mov edx, edi
mov esi, edi
jmp 0x41f8ec
movzx ebx, word [eax]
test bx, bx
je 0x41f97c
movzx edi, word [edx]
test di, di
je 0x41f9b7
add edx, 2
add eax, 2
lea ecx, [esi + 2]
cmp di, bx
je 0x41f90a
mov esi, ecx
mov edx, ecx
je 0x41f8e0
lea eax, [esp + 0x10]
jmp 0x41f8e0
mov al, 1
mov dword [esp + 4], eax
jmp 0x41f3b8
mov ebx, dword [esp + 0xf0]
mov edi, dword [esp + 0xf4]
mov eax, ebx
or eax, edi
je 0x41f9e0
mov eax, dword [esp + 0xf8]
lea ecx, [eax*2 + 2]
inc eax
mov dword [esp + 4], ecx
mov eax, ecx
jns 0x41f951
mov eax, 0xffffffff
push eax
call fcn.0040c900
add esp, 4
mov ecx, esi
push 0
push 0
push dword [esp + 0xc]
push eax
push edi
mov edi, eax
push ebx
call fcn.0043f100
test eax, eax
jns 0x41f85c
jmp 0x41f9e0
mov esi, edi
jmp 0x41f984
lea ebx, [esp + 0x60]
test esi, esi
je 0x41f9bb
movzx edi, word [esi + 0x14]
lea ebx, [esp + 0x60]
test di, di
je 0x41f9bb
lea eax, [esi + 0x14]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x41fd1a
movzx edi, word [esi + ecx + 0x16]
add ecx, 2
test di, di
jne 0x41f9a0
lea ebx, [esp + 0x60]
cmp byte [esp + 0x107], 0
jns 0x41f9d1
push dword [esp + 0x34]
call fcn.0040c910
add esp, 4
lea esi, [esp + 0x60]
cmp esi, ebx
jne 0x41fa86
nop
nop
nop
mov dword [esp + 0x10], 0xe170e75f
mov dword [esp + 0x14], 0xdd73e37d
mov dword [esp + 0x18], 0xd948df45
mov dword [esp + 0x1c], 0xd556db43
mov dword [esp + 0x20], 0xd1d6d745
mov byte [esp + 0x24], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x10]
mov edi, ecx
xor edi, 0x91a7daa7
mov edx, eax
and edx, 0x30
sub edx, edi
xor edx, esi
mov ebx, edx
or ebx, 0x42
add ebx, edx
not edx
or edx, 0x42
add ebx, edx
add bl, 2
mov byte [esp + ecx + 0x10], bl
inc ecx
add eax, 2
cmp ecx, 0x15
jne 0x41fa20
movzx eax, word [esp + 0x10]
lea esi, [esp + 0x60]
mov ebx, esi
test ax, ax
je 0x41fa81
lea ecx, [esp + 0x12]
mov ebx, esi
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41fa70
mov word [ebx], 0
mov edx, ebx
sub edx, esi
mov ecx, edx
shr ecx, 2
mov eax, esi
mov esi, dword [esp + 8]
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, edx
and eax, 0xfffffffc
lea edi, [esi + eax]
add eax, esp
add eax, 0x60
mov ecx, edx
shr ecx, 1
and ecx, 1
mov esi, eax
mov dword [esp + 4], edi
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
je 0x41fad1
mov ecx, edx
and ecx, 2
movzx eax, byte [eax + ecx]
mov esi, dword [esp + 4]
mov byte [esi + ecx], al
mov dword [esp + 0x10], 0xebfffd96
mov word [esp + 0x14], 0x9d92
mov dword [esp + 0x16], 0
mov eax, 0xee726d1a
mov ecx, 0x118d92e5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x118d92f6]
mov edi, ecx
xor edi, 0x1081005a
mov ebx, eax
and ebx, 0xa030281a
or ebx, edi
and ebx, 0xfef36d7f
xor ebx, esi
xor ebx, 0x4e424525
add ebx, 0x57c3de7d
mov esi, ebx
and esi, 1
or ebx, 1
add ebx, esi
mov byte [esp + eax + 0x118d92f6], bl
inc eax
dec ecx
cmp eax, 0xee726d24
jne 0x41fb00
mov esi, dword [esp + 8]
add esi, edx
movzx eax, byte [esp + 0x10]
test al, al
je 0x41fb6b
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fb60
mov byte [esi], 0
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 0x41fb80
sar eax, 1
sar edx, 1
lea ecx, [edx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x41fba0
mov eax, 0xffffffff
jmp 0x41fba9
add edx, eax
lea eax, [edx*2 + 0x14]
mov dword [esp + 8], esi
push eax
call fcn.0040c900
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x41fbe1
add edi, 2
mov edx, eax
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 0x41fbd0
mov dword [esp + 0x34], eax
mov eax, edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0xd704c93b
mov dword [esp + 0x14], 0xd369d579
mov dword [esp + 0x18], 0xdf62d122
mov dword [esp + 0x1c], 0xdb66dd64
mov word [esp + 0x20], 0xd9d8
lea ecx, [esp + 0x22]
mov byte [ecx + 4], 0
mov dword [ecx], 0
mov ecx, 0x188a42a
mov edx, 0x4c775bd5
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x188a41a]
mov edi, edx
and edi, 0x481348fc
mov ebx, ecx
and ebx, 0x1888003
sub ebx, edi
xor ebx, esi
mov esi, ebx
and esi, 0x19
xor ebx, 0x19
lea ebx, [ebx + esi*2]
inc bl
mov byte [esp + ecx - 0x188a41a], bl
inc ecx
dec edx
cmp ecx, 0x188a441
jne 0x41fc30
add eax, 2
movzx ecx, word [esp + 0x60]
test cx, cx
je 0x41fc93
lea edx, [esp + 0x62]
lea esi, [esp + 0x38]
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41fc80
jmp 0x41fc97
lea esi, [esp + 0x38]
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x41fcc1
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41fcb0
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0xc]
call fcn.00405920
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x41fce0
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0x3c]
push ebx
call fcn.0040d3d0
mov dword [esp + 4], eax
push edi
call fcn.004059b0
add esp, 4
push ebx
call fcn.0040c910
add esp, 4
mov ebx, dword [esp + 8]
xor edi, edi
jmp 0x41f3b8
lea edx, [esp + 0x60]
mov ebx, edx
test ecx, ecx
je 0x41fdbd
sar ecx, 1
mov esi, ecx
mov ebx, edx
and esi, 3
je 0x41fd63
xor edi, edi
mov dword [esp + 4], esi
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [eax]
xor edx, edx
test si, si
setne dl
lea eax, [eax + edx*2]
mov word [ebx], si
mov esi, dword [esp + 4]
add ebx, 2
inc edi
cmp esi, edi
jne 0x41fd40
mov esi, ecx
sub esi, edi
jmp 0x41fd65
mov esi, ecx
dec ecx
cmp ecx, 3
jb 0x41fdbd
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 0x41fd6b
mov word [ebx], 0
cmp byte [esp + 0x107], 0
jns 0x41f9d1
jmp 0x41f9c5
mov eax, dword [esp + 0x4c]
and cl, 1
test eax, eax
je 0x41fdff
cmp eax, dword [esp + 0x50]
je 0x41fdff
push eax
mov esi, ecx
call fcn.0040c910
mov ecx, esi
add esp, 4
mov dword [esp + 0x4c], 0
jmp 0x41fdff
xor ecx, ecx
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x38]
call fcn.0043e8b0
mov dword [esp + 0x140], 0x394e495d
mov byte [esp + 0x144], 0x3c
mov dword [esp + 0x145], 0
xor eax, eax
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x140]
mov esi, edi
and esi, 8
mov edx, eax
xor edx, 0x97925a34
add edx, esi
mov esi, ecx
and esi, edx
add esi, esi
sub edx, esi
add dl, cl
add dl, 0xfc
mov byte [esp + eax + 0x140], dl
inc eax
add edi, 2
cmp eax, 9
jne 0x41fe30
movzx eax, byte [esp + 0x140]
test al, al
je 0x41fe8b
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fe80
mov byte [ebx], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], ebx
mov eax, dword [esp + 0x30]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret