Function at 0x41eee0
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 eax, dword [ebp + 0x10]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x140], 0xeb4a415b
mov byte [esp + 0x144], 0xf0
mov dword [esp + 0x145], 0
mov ecx, 0x55
mov edx, 0xaa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0xeb]
mov esi, ebx
not esi
or esi, edx
mov edi, esi
not edi
or ebx, ecx
or ebx, edi
add ebx, esi
add bl, 0x58
mov byte [esp + ecx + 0xeb], bl
inc ecx
dec edx
cmp ecx, 0x5e
jne 0x41ef40
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x140]
test cl, cl
je 0x41ef9b
lea edx, [esp + 0x141]
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 0x41ef90
mov byte [esi], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
lea ecx, [esp + 0x48]
lea edx, [esp + 0x58]
lea edi, [esp + 0x34]
push ecx
push edx
push edi
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.00421360
add esp, 0x18
test al, al
je 0x420158
mov dword [esp + 0x140], 0xeb5b4d4c
mov byte [esp + 0x144], 0xf0
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
lea eax, [esp + 0x140]
mov ecx, 0x26395daa
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax]
lea edi, [ecx - 0x80000000]
and edi, 0x822945bb
mov ebx, ecx
and ebx, 0x24101804
or ebx, edi
mov edi, edx
not edi
and edi, 0xfb
xor edx, 0xfb
or edx, edi
xor edx, ebx
xor edx, 4
add dl, 0x57
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x26395da0
jne 0x41f020
movzx eax, byte [esp + 0x140]
test al, al
je 0x41f08b
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f080
mov byte [esi], 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 + 0x140], 0x62908561
mov dword [esp + 0x144], 0xb47fb59e
mov dword [esp + 0x148], 0x8e7c6c6e
mov dword [esp + 0x14c], 0x6c6f6e61
mov dword [esp + 0x150], 0x668077b9
mov dword [esp + 0x154], 0x8d8ebbb5
mov dword [esp + 0x158], 0x50535255
mov dword [esp + 0x15c], 0xa5864784
mov dword [esp + 0x160], 0x8bac8147
mov dword [esp + 0x164], 0x4a5f5b8b
mov dword [esp + 0x168], 0x9a5ab5bf
mov dword [esp + 0x16c], 0x5394b4b8
mov dword [esp + 0x170], 0x945a44a2
mov dword [esp + 0x174], 0x2fcb2b55
mov dword [esp + 0x178], 0x3e38d93b
mov dword [esp + 0x17c], 0x3c3f3e31
mov dword [esp + 0x180], 0xead5d7e9
mov dword [esp + 0x184], 0x243bc037
mov dword [esp + 0x188], 0x2029cfd4
mov dword [esp + 0x18c], 0x372f2e21
mov dword [esp + 0x190], 0x282b2a25
mov dword [esp + 0x194], 0xcf0ee329
mov dword [esp + 0x198], 0xe20a1f0e
mov dword [esp + 0x19c], 0xc2c503e6
mov dword [esp + 0x1a0], 0x181b1a1d
mov dword [esp + 0x1a4], 0xea161ecd
mov dword [esp + 0x1a8], 0xd70dd205
mov dword [esp + 0x1ac], 0xc13e019
mov dword [esp + 0x1b0], 0x80b0a0d
mov dword [esp + 0x1b4], 0xf7f609
mov dword [esp + 0x1b8], 0xfe212ee9
mov dword [esp + 0x1bc], 0xfcfffef1
mov dword [esp + 0x1c0], 0x1507142f
mov dword [esp + 0x1c4], 0xf932faf9
mov byte [esp + 0x1c8], 0xa4
mov dword [esp + 0x1c9], 0
mov eax, 0xb
mov ecx, 0xf4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x135]
mov ebx, ecx
and ebx, 0x94
mov edi, eax
and edi, 0x6b
or edi, ebx
mov ebx, ecx
or ebx, edx
xor edi, 0x6b
or edi, ecx
and edi, edx
not ebx
or ebx, edi
add bl, 0xc9
mov byte [esp + eax + 0x135], bl
inc eax
dec ecx
cmp eax, 0x98
jne 0x41f250
mov dword [esp + 0x60], 0xace2d2de
mov dword [esp + 0x64], 0x54a10744
mov dword [esp + 0x68], 0xb9a05ce4
mov dword [esp + 0x6c], 0xd5d6d7d0
mov dword [esp + 0x70], 0xd14eda5f
mov dword [esp + 0x74], 0xb5c95010
mov dword [esp + 0x78], 0xc1c2c3dc
mov dword [esp + 0x7c], 0xdd64808
mov dword [esp + 0x80], 0x28e28f41
mov dword [esp + 0x84], 0x81828a2a
mov dword [esp + 0x88], 0xbdbebf80
mov dword [esp + 0x8c], 0xb9babbbc
mov dword [esp + 0x90], 0x7c32020e
mov dword [esp + 0x94], 0x72362794
mov dword [esp + 0x98], 0xea6f2b8e
mov dword [esp + 0x9c], 0xe5e6e7e0
mov dword [esp + 0xa0], 0x218a3c2c
mov dword [esp + 0xa4], 0xedca2b67
mov dword [esp + 0xa8], 0x910d2024
mov dword [esp + 0xac], 0xbd969790
mov dword [esp + 0xb0], 0x999a9bfc
mov dword [esp + 0xb4], 0x57135798
mov dword [esp + 0xb8], 0x730f4bbc
mov dword [esp + 0xbc], 0x3f0b4fa8
mov dword [esp + 0xc0], 0x898a8b84
mov dword [esp + 0xc4], 0xa94a3c44
mov dword [esp + 0xc8], 0x813d7c8c
mov dword [esp + 0xcc], 0xb53cfe78
mov dword [esp + 0xd0], 0xb9babbb4
mov dword [esp + 0xd4], 0x75bebfb8
mov dword [esp + 0xd8], 0x9aa3bd33
mov dword [esp + 0xdc], 0xa5a6a7a0
mov dword [esp + 0xe0], 0x8d66266c
mov dword [esp + 0xe4], 0xca7967a8
mov byte [esp + 0xe8], 0xac
mov byte [esp + 0xeb], 0
mov word [esp + 0xe9], 0
mov eax, 0x36ba4377
mov ecx, 0x88
nop
nop
nop
nop
nop
mov dword [esp + 0xc], ecx
movzx edi, byte [esp + eax - 0x36ba4317]
mov edx, dword [esp + 0xc]
xor edx, eax
and edx, edi
xor edx, eax
add edx, 0xee5caeac
mov edi, edx
xor edi, 0xfffffffe
mov ebx, edx
or ebx, 1
and ebx, edi
mov ecx, ebx
and ecx, 2
mov edi, ebx
or ebx, 2
imul ebx, ecx
xor ecx, 2
and edi, 0xfd
imul edi, ecx
xor edx, 1
add edx, ebx
add edx, edi
mov byte [esp + eax - 0x36ba4317], dl
mov ecx, dword [esp + 0xc]
inc eax
dec ecx
cmp eax, 0x36ba4403
jne 0x41f410
lea eax, [esp + 0x140]
lea edx, [esp + 0x60]
lea ecx, [esp + 0x130]
push eax
push 0x88
push edx
lea edi, [esp + 0x40]
push edi
call fcn.0043f350
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
xor ebx, ebx
or eax, edx
je 0x42015a
mov dword [esp + 0x140], 0xbf4fbe8
mov byte [esp + 0x144], 0
mov dword [esp + 0x145], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx + 0x140]
mov eax, ebx
xor eax, 0xbfff873e
mov edx, ebx
or edx, 0x400078c1
and eax, edx
add eax, edx
xor eax, ecx
mov ecx, 1
sub ecx, eax
mov edx, 0xc5
sub edx, eax
and eax, 1
and ecx, 1
and edx, 0xfe
or edx, ecx
xor edx, 0xfe
lea eax, [edx + eax*2]
mov byte [esp + ebx + 0x140], al
inc ebx
cmp ebx, 9
jne 0x41f4d0
movzx eax, byte [esp + 0x140]
test al, al
je 0x41f54b
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f540
mov byte [esi], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
push edi
call fcn.0043f350
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
or eax, edx
je 0x420158
mov dword [esp + 0x140], 0x31d4ecde
mov byte [esp + 0x144], 0x4c
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
mov eax, 0xc8c5c272
mov edi, 0x373a3d8d
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x373a3ece]
mov dword [esp + 0xc], ecx
mov edx, eax
and edx, ecx
mov ecx, edx
and ecx, 2
mov ebx, edx
or edx, 2
imul edx, ecx
xor ecx, 2
and ebx, 0x7d
imul ebx, ecx
add edx, ebx
mov ecx, edx
not ecx
and ecx, eax
and edx, edi
sub edx, ecx
mov ecx, edx
mov ebx, dword [esp + 0xc]
xor ecx, ebx
not edx
and edx, ebx
add edx, edx
sub edx, ecx
add dl, 0xc6
mov byte [esp + eax + 0x373a3ece], dl
inc eax
dec edi
cmp eax, 0xc8c5c27a
jne 0x41f5b0
movzx eax, byte [esp + 0x140]
test al, al
je 0x41f62b
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f620
mov byte [esi], 0
lea eax, [esp + 0x120]
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x34]
push 0
push 8
push eax
push edx
call fcn.0043e900
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x50]
je 0x420158
mov dword [esp + 0x140], 0xdba2a3af
mov byte [esp + 0x144], 0xd0
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
mov eax, 0x4d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0xf3]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x7f
mov byte [esp + eax + 0xf3], cl
inc eax
cmp eax, 0x59
jne 0x41f690
movzx eax, byte [esp + 0x140]
test al, al
je 0x41f6db
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f6d0
mov byte [esi], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x108], ecx
xor ebx, ebx
cmp eax, ecx
je 0x42015a
lea edi, [esp + 0x34]
jmp 0x41f736
mov dword [esp + 4], 0
push dword [esp + 0xc]
call fcn.00404930
add esp, 4
mov ebx, dword [esp + 0x44]
and bl, 1
or bl, byte [esp + 4]
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x4201cd
mov dword [esp + 0x44], ebx
mov ecx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0040c7d0
add esp, 0xc
xor ebx, ebx
jmp 0x41f77e
lea edi, [esp + 0x34]
inc ebx
cmp ebx, 0xb
je 0x41f980
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x18]
push dword [esp + 0x18]
call fcn.0043e770
test eax, eax
js 0x41f774
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
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + ecx], al
movzx eax, byte [esp + ecx + 0xf1]
inc ecx
test al, al
jne 0x41f800
mov byte [esi + ecx], 0
cmp byte [esp + 0x212], 0
jne 0x41f9a0
add esi, ecx
mov dword [esp + 0x60], 0x3f5d5445
mov byte [esp + 0x64], 0xc8
mov dword [esp + 0x65], 0
mov eax, 0xa75874b3
nop
nop
movzx ecx, byte [esp + eax + 0x58a78bad]
mov edi, eax
and edi, ecx
add ecx, eax
add edi, edi
mov edx, ecx
sub edx, edi
and ecx, 1
and edx, 0xfe
xor edx, 0x81
add edx, ecx
mov byte [esp + eax + 0x58a78bad], dl
inc eax
cmp eax, 0xa75874bc
jne 0x41f840
mov dword [esp + 0xc], ebx
movzx eax, byte [esp + 0x60]
test al, al
je 0x41f89b
lea ecx, [esp + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41f890
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x60], 0x1c1d1a1b
mov byte [esp + 0x64], 0
mov edi, 0xd8258f3a
movzx ecx, byte [esp + edi + 0x27da7126]
mov eax, edi
and eax, ecx
mov ebx, eax
and ebx, 0x7d
mov edx, eax
or edx, 0xfffffffd
inc edx
imul edx, ebx
mov ebx, eax
and ebx, 2
or eax, 2
imul eax, ebx
add edx, ecx
sub edx, eax
add edx, edi
mov eax, edx
and eax, 0x5d
xor edx, 0xdc
lea eax, [edx + eax*2]
add ecx, edi
and ecx, 1
or eax, 1
sub eax, ecx
inc al
mov byte [esp + edi + 0x27da7126], al
inc edi
cmp edi, 0xd8258f3f
jne 0x41f8c0
mov eax, dword [0x44fd60]
test eax, eax
mov ebx, dword [esp + 0xc]
je 0x41f770
mov ecx, dword [esp + 0x60]
xor edx, edx
mov edi, dword [0x44fd64]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x41f953
inc edx
cmp eax, edx
jne 0x41f940
jmp 0x41f770
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x41f770
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x44fd68]
push eax
call fcn.004407f0
add esp, 0x14
jmp 0x41f770
cmp byte [esp + 0x212], 0
jne 0x41f9a2
mov ebx, dword [esp + 0x44]
jmp 0x41f71f
add esi, ecx
call fcn.00404af0
mov dword [esp + 0xc], eax
push eax
call fcn.00404720
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x60], 0xe7010d0b
mov byte [esp + 0x64], 0xe8
mov dword [esp + 0x65], 0
mov eax, 0xa7
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
and ebx, 3
mov edx, eax
and edx, 0x9c
or edx, ebx
xor dl, byte [esp + eax - 0x47]
xor dl, 0x23
add dl, 0xbd
mov byte [esp + eax - 0x47], dl
inc eax
dec ecx
cmp eax, 0xb0
jne 0x41f9e0
movzx eax, byte [esp + 0x60]
test al, al
je 0x41fa30
lea ecx, [esp + 0x61]
lea edi, [esp + 0x60]
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 0x41fa20
jmp 0x41fa34
lea edi, [esp + 0x60]
mov byte [esi], 0
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
mov ecx, eax
or ecx, edx
je 0x41fa80
lea ebx, [esp + 0x34]
mov ecx, ebx
push 0
push 0
push 0x40
push edi
push edx
push eax
call fcn.0043e770
test eax, eax
js 0x41fa80
mov ecx, ebx
mov edx, edi
push dword [esp + 4]
call fcn.00421c90
add esp, 4
jmp 0x41fa82
xor eax, eax
mov dword [esp + 0x60], 0x5be0e8e7
mov byte [esp + 0x64], 0x50
lea ecx, [esp + 0x65]
mov dword [ecx + 3], 0
mov dword [ecx], 0
mov ecx, 0x2477fc92
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [edx]
lea edi, [ecx - 0x2477fc00]
and edi, ebx
or ebx, ecx
not ebx
or ebx, edi
mov edi, ebx
xor edi, 0xdd
and ebx, 0x5d
lea ebx, [edi + ebx*2]
add bl, 2
mov byte [edx], bl
inc edx
dec ecx
cmp ecx, 0x2477fc86
jne 0x41fab0
movzx ecx, byte [esp + 0x60]
test cl, cl
je 0x41fb00
lea edx, [esp + 0x61]
lea edi, [esp + 0x34]
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41faf0
jmp 0x41fb04
lea edi, [esp + 0x34]
mov byte [esi], 0
test al, al
je 0x41f700
push dword [esp + 4]
call fcn.004048f0
add esp, 4
test eax, eax
je 0x41fca0
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x124]
push ebx
push edx
push eax
call fcn.0043e770
test eax, eax
js 0x41fe70
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.0043e770
test eax, eax
js 0x41fe70
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 0x18
lea edi, [esp + 0xfc]
push edi
push edx
push eax
call fcn.0043e770
test eax, eax
js 0x41fe70
cmp byte [esp + 0x107], 0
lea ebx, [esp + 0xf0]
js 0x41fcab
mov dword [esp + 0x10], 0xc15bc77b
mov dword [esp + 0x14], 0xcd50c36f
mov dword [esp + 0x18], 0xc902cf2c
mov dword [esp + 0x1c], 0xb556cb6b
mov dword [esp + 0x20], 0xb112b717
mov word [esp + 0x24], 0xb3b0
lea eax, [esp + 0x26]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0xdeb95cb1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x2146a35f]
mov edi, eax
and edi, ecx
add ecx, eax
add edi, edi
mov edx, ecx
sub edx, edi
and ecx, 1
or edx, 1
add edx, ecx
add dl, 0x8a
mov byte [esp + eax + 0x2146a35f], dl
inc eax
cmp eax, 0xdeb95ccd
jne 0x41fc20
movzx edi, word [esp + 0x10]
test di, di
mov dword [esp + 0x30], ebx
je 0x41fce5
lea eax, [esp + 0x10]
mov edx, ebx
mov dword [esp + 4], ebx
jmp 0x41fc78
movzx edi, word [eax]
test di, di
je 0x41fcf2
movzx ebx, word [edx]
test bx, bx
je 0x41fce9
add edx, 2
add eax, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp bx, di
je 0x41fc98
mov dword [esp + 4], ecx
mov edx, ecx
je 0x41fc70
lea eax, [esp + 0x10]
jmp 0x41fc70
mov al, 1
mov dword [esp + 4], eax
jmp 0x41f708
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xf4]
mov eax, ecx
or eax, edx
je 0x41fe70
mov edi, dword [esp + 0xf8]
mov ebx, edi
inc ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
jns 0x41fd90
mov eax, 0xffffffff
jmp 0x41fd97
mov eax, ebx
jmp 0x41fd02
lea ebx, [esp + 0x60]
jmp 0x41fe4e
lea ebx, [esp + 0x60]
mov eax, dword [esp + 4]
test eax, eax
je 0x41fe4e
movzx edi, word [eax + 0x14]
lea ebx, [esp + 0x60]
test di, di
je 0x41fe4e
lea edx, [eax + 0x14]
xor ecx, ecx
lea ebx, [esp + 0x60]
nop
nop
nop
nop
cmp di, 0x5c
je 0x41fd38
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x41fd20
jmp 0x41fe4e
test ecx, ecx
je 0x41fe49
sar ecx, 1
mov eax, ecx
and eax, 3
mov dword [esp + 8], eax
je 0x41fdeb
xor edi, edi
lea ebx, [esp + 0x60]
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, word [edx]
mov word [esp + 4], ax
xor eax, eax
cmp word [esp + 4], 0
setne al
lea edx, [edx + eax*2]
movzx eax, word [esp + 4]
mov word [ebx], ax
add ebx, 2
inc edi
cmp dword [esp + 8], edi
jne 0x41fd60
mov eax, ecx
sub eax, edi
mov edi, eax
jmp 0x41fdf1
lea eax, [edi*2 + 2]
push eax
call fcn.0040c730
add esp, 4
mov dword [esp + 0x30], eax
mov ecx, ebx
or ecx, 2
mov eax, ebx
and eax, 2
imul eax, ecx
and ebx, 0xfffffffd
mov edx, 2
sub edx, edi
and edx, 2
imul edx, ebx
mov ebx, dword [esp + 0x30]
add edx, eax
lea ecx, [esp + 0x34]
push 0
push 0
push edx
push ebx
push dword [esp + 0x18]
push dword [esp + 0x18]
call fcn.0043e770
test eax, eax
jns 0x41fbd1
jmp 0x41fe70
lea ebx, [esp + 0x60]
mov edi, ecx
dec ecx
cmp ecx, 3
jb 0x41fe49
movzx eax, word [edx]
xor ecx, ecx
test ax, ax
setne cl
mov word [ebx], ax
lea eax, [edx + ecx*2]
movzx ecx, word [edx + 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 edx, [eax + edx*2]
mov word [ebx + 6], cx
add ebx, 8
add edi, 0xfffffffc
jne 0x41fdf7
mov word [ebx], 0
cmp byte [esp + 0x107], 0
jns 0x41fe64
push dword [esp + 0x30]
call fcn.0040c740
add esp, 4
lea eax, [esp + 0x60]
cmp eax, ebx
jne 0x41ff26
mov dword [esp + 0x10], 0x93e491c9
mov dword [esp + 0x14], 0xafd9adcf
mov dword [esp + 0x18], 0xabdca9d7
mov dword [esp + 0x1c], 0xa72aa5dd
mov dword [esp + 0x20], 0xa3a2a1d7
mov word [esp + 0x24], 0
mov edx, 0x9c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0x8c]
mov ebx, eax
mov edi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xbd
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, 0xf4
mov byte [esp + edx - 0x8c], al
inc edx
cmp edx, 0xb2
jne 0x41feb0
movzx eax, word [esp + 0x10]
lea ebx, [esp + 0x60]
test ax, ax
je 0x41ff21
lea ecx, [esp + 0x12]
lea ebx, [esp + 0x60]
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41ff10
mov word [ebx], 0
mov edx, ebx
lea eax, [esp + 0x60]
sub edx, eax
mov ecx, edx
shr ecx, 2
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 dword [esp + 8], eax
mov dword [esp + 4], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x41ff73
mov eax, edx
and eax, 2
mov ecx, dword [esp + 8]
movzx ecx, byte [ecx + eax]
mov edi, dword [esp + 4]
mov byte [edi + eax], cl
mov dword [esp + 0x10], 0xa5b5b70a
mov word [esp + 0x14], 0xe70e
mov dword [esp + 0x16], 0
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0x7b
xor cl, byte [esp + eax + 0x10]
add cl, 0x99
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0xa
jne 0x41ff90
add esi, edx
movzx eax, byte [esp + 0x10]
test al, al
je 0x41ffcb
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ffc0
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 0x41ffe0
sar eax, 1
sar edx, 1
lea ecx, [edx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x420000
mov eax, 0xffffffff
jmp 0x420009
add edx, eax
lea eax, [edx*2 + 0x14]
push eax
call fcn.0040c730
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x420041
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 0x420030
mov dword [esp + 8], eax
mov eax, edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0x91209fcd
mov dword [esp + 0x14], 0x951b9337
mov dword [esp + 0x18], 0x890297ca
mov dword [esp + 0x1c], 0x8d1e8b00
mov dword [esp + 0x20], 0x8f8c
mov ecx, 0x25
mov edx, 0x1a
nop
nop
mov edi, edx
and edi, 0x27
mov ebx, ecx
and ebx, 0x58
or ebx, edi
xor bl, byte [esp + ecx - 0x15]
xor bl, 0xa7
add bl, 0xc7
mov byte [esp + ecx - 0x15], bl
inc ecx
dec edx
cmp ecx, 0x39
jne 0x420080
add eax, 2
movzx ecx, word [esp + 0x60]
test cx, cx
je 0x4200d1
lea edx, [esp + 0x62]
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 0x4200c0
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x420101
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 0x4200f0
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0xc]
call fcn.00405720
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x420120
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0x10]
push ebx
call fcn.0040d100
mov dword [esp + 4], eax
push edi
call fcn.004057b0
add esp, 4
push ebx
call fcn.0040c740
add esp, 4
lea edi, [esp + 0x34]
jmp 0x41f708
xor ebx, ebx
lea ecx, [esp + 0x34]
call fcn.0043df20
mov dword [esp + 0x140], 0x9767965
mov byte [esp + 0x144], 4
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
xor eax, eax
nop
nop
nop
xor byte [esp + eax + 0x140], al
inc eax
cmp eax, 0xb
jne 0x420190
movzx eax, byte [esp + 0x140]
test al, al
je 0x4201bb
lea ecx, [esp + 0x141]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4201b0
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 eax, dword [esp + 0x4c]
and bl, 1
test eax, eax
je 0x42015a
cmp eax, dword [esp + 0x50]
je 0x42015a
push eax
call fcn.0040c740
add esp, 4
mov dword [esp + 0x4c], 0
jmp 0x42015a