Function at 0x40b660
Capabilities:
Contain obfuscated stackstrings
Get session user name

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42784a
mov eax, dword fs:[0]
push eax
sub esp, 0xb4c
mov eax, dword [0x452658]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor ebx, ebx
push 0xa
lea eax, [ebp - 0x628]
push eax
push ebx
call fcn.0041472c
mov ecx, dword [str.cPSLOO]
mov edx, dword [0x42c1a0]
mov eax, dword [0x42c1a4]
push 0x1fa
mov dword [ebp - 0x214], edx
mov dword [ebp - 0x218], ecx
mov cx, word [0x42c1a8]
lea edx, [ebp - 0x20a]
push 0
push edx
mov dword [ebp - 0x210], eax
mov word [ebp - 0x20c], cx
call fcn.00415960
lea eax, [ebp - 0x628]
add esp, 0x18
mov edx, eax
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40b6f0
lea edi, [ebp - 0x218]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x40b706
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x218]
rep movsb byte es:[edi], byte [esi]
add eax, 0xfffffffe
jmp 0x40b730
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x40b730
mov ecx, dword [str..dll]
mov edx, dword [0x42c1b0]
mov dword [eax], ecx
mov cx, word [0x42c1b4]
mov dword [eax + 4], edx
lea edx, [ebp - 0x218]
push edx
mov word [eax + 8], cx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
jne 0x40bfec
inc ebx
cmp ebx, 2
jl 0x40b690
lea eax, [ebp - 0xb4c]
push eax
lea ecx, [ebp - 0x420]
push ecx
mov dword [ebp - 0xb4c], 0x104
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
mov ebx, 7
xor edx, edx
lea eax, [ebp - 0x420]
mov dword [ebp - 0x64c], ebx
mov dword [ebp - 0x650], 0
mov word [ebp - 0x660], dx
lea ecx, [eax + 2]
lea esp, [esp]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x40b7c0
sub eax, ecx
sar eax, 1
push eax
lea eax, [ebp - 0x420]
lea esi, [ebp - 0x660]
call fcn.00401e70
lea eax, [ebp - 0x83c]
mov dword [ebp - 4], 0
call fcn.00409d00
mov esi, eax
lea eax, [ebp - 0x804]
mov byte [ebp - 4], 1
call fcn.00409d90
mov edi, eax
lea eax, [ebp - 0x7cc]
mov byte [ebp - 4], 2
call fcn.00402810
mov dword [ebp - 0xb3c], eax
lea eax, [ebp - 0x794]
mov byte [ebp - 4], 3
call fcn.00409e20
mov dword [ebp - 0xb40], eax
lea eax, [ebp - 0x75c]
mov byte [ebp - 4], 4
call fcn.0040a0c0
mov dword [ebp - 0xb38], eax
lea eax, [ebp - 0x724]
mov byte [ebp - 4], 5
call fcn.0040a090
mov dword [ebp - 0xb44], eax
lea eax, [ebp - 0x6ec]
mov byte [ebp - 4], 6
call fcn.0040a000
mov dword [ebp - 0xb58], eax
lea eax, [ebp - 0x698]
mov byte [ebp - 4], bl
call fcn.0040a0c0
mov dword [ebp - 0xb50], eax
lea eax, [ebp - 0x6b4]
mov byte [ebp - 4], 8
call fcn.0040a060
mov dword [ebp - 0xb48], eax
lea eax, [ebp - 0xa88]
mov byte [ebp - 4], 9
call fcn.0040a000
mov dword [ebp - 0xb54], eax
lea eax, [ebp - 0x67c]
mov byte [ebp - 4], 0xa
call fcn.00409e50
mov dword [ebp - 0xb34], eax
lea eax, [ebp - 0x8c8]
mov byte [ebp - 4], 0xb
call fcn.0040a0c0
mov ebx, eax
lea eax, [ebp - 0x9e0]
mov byte [ebp - 4], 0xc
call fcn.00409fd0
push eax
mov edx, 0x42c1bc
lea eax, [ebp - 0x890]
mov byte [ebp - 4], 0xd
call fcn.00406940
mov ecx, eax
mov eax, ebx
mov byte [ebp - 4], 0xe
lea ebx, [ebp - 0xac0]
call fcn.00406990
mov ecx, eax
mov eax, dword [ebp - 0xb34]
lea ebx, [ebp - 0x858]
mov byte [ebp - 4], 0xf
call fcn.00406990
mov ecx, eax
mov eax, dword [ebp - 0xb54]
lea ebx, [ebp - 0x9a8]
mov byte [ebp - 4], 0x10
call fcn.00406990
mov ecx, eax
mov eax, dword [ebp - 0xb48]
lea ebx, [ebp - 0x820]
mov byte [ebp - 4], 0x11
call fcn.00406990
mov ecx, eax
mov eax, dword [ebp - 0xb50]
lea ebx, [ebp - 0xa50]
mov byte [ebp - 4], 0x12
call fcn.00406990
push eax
mov eax, 0x42c1b8
lea ecx, [ebp - 0x7e8]
mov byte [ebp - 4], 0x13
call fcn.00406a20
mov ecx, eax
mov eax, dword [ebp - 0xb58]
lea ebx, [ebp - 0x970]
mov byte [ebp - 4], 0x14
call fcn.00406990
mov ecx, eax
mov eax, dword [ebp - 0xb44]
lea ebx, [ebp - 0x7b0]
mov byte [ebp - 4], 0x15
call fcn.00406990
mov ecx, eax
mov eax, dword [ebp - 0xb38]
lea ebx, [ebp - 0xaf8]
mov byte [ebp - 4], 0x16
call fcn.00406990
mov ecx, eax
mov eax, dword [ebp - 0xb40]
lea ebx, [ebp - 0x778]
mov byte [ebp - 4], 0x17
call fcn.00406990
mov ecx, eax
mov eax, dword [ebp - 0xb3c]
lea ebx, [ebp - 0x938]
mov byte [ebp - 4], 0x18
call fcn.00406990
mov ecx, eax
mov eax, edi
lea ebx, [ebp - 0x740]
mov byte [ebp - 4], 0x19
call fcn.00406990
mov ecx, eax
mov eax, esi
lea ebx, [ebp - 0xa18]
mov byte [ebp - 4], 0x1a
call fcn.00406990
push eax
lea eax, [ebp - 0x708]
push eax
mov byte [ebp - 4], 0x1b
call fcn.00412ab0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x644]
push ecx
mov ecx, eax
call section..text
add esp, 0x14
mov esi, 8
cmp dword [ebp - 0x6f4], esi
jb 0x40ba56
mov edx, dword [ebp - 0x708]
push edx
call fcn.0041381f
add esp, 4
mov edi, 7
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x6f4], edi
mov dword [ebp - 0x6f8], ebx
mov word [ebp - 0x708], ax
cmp dword [ebp - 0xa04], esi
jb 0x40ba89
mov ecx, dword [ebp - 0xa18]
push ecx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0xa04], edi
mov dword [ebp - 0xa08], ebx
mov word [ebp - 0xa18], dx
cmp dword [ebp - 0x72c], esi
jb 0x40bab5
mov eax, dword [ebp - 0x740]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x72c], edi
mov dword [ebp - 0x730], ebx
mov word [ebp - 0x740], cx
cmp dword [ebp - 0x924], esi
jb 0x40bae1
mov edx, dword [ebp - 0x938]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
mov dword [ebp - 0x924], edi
mov dword [ebp - 0x928], ebx
mov word [ebp - 0x938], ax
cmp dword [ebp - 0x764], esi
jb 0x40bb0d
mov ecx, dword [ebp - 0x778]
push ecx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0x764], edi
mov dword [ebp - 0x768], ebx
mov word [ebp - 0x778], dx
cmp dword [ebp - 0xae4], esi
jb 0x40bb39
mov eax, dword [ebp - 0xaf8]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0xae4], edi
mov dword [ebp - 0xae8], ebx
mov word [ebp - 0xaf8], cx
cmp dword [ebp - 0x79c], esi
jb 0x40bb65
mov edx, dword [ebp - 0x7b0]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
mov dword [ebp - 0x79c], edi
mov dword [ebp - 0x7a0], ebx
mov word [ebp - 0x7b0], ax
cmp dword [ebp - 0x95c], esi
jb 0x40bb91
mov ecx, dword [ebp - 0x970]
push ecx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0x95c], edi
mov dword [ebp - 0x960], ebx
mov word [ebp - 0x970], dx
cmp dword [ebp - 0x7d4], esi
jb 0x40bbbd
mov eax, dword [ebp - 0x7e8]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x7d4], edi
mov dword [ebp - 0x7d8], ebx
mov word [ebp - 0x7e8], cx
cmp dword [ebp - 0xa3c], esi
jb 0x40bbe9
mov edx, dword [ebp - 0xa50]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
mov dword [ebp - 0xa3c], edi
mov dword [ebp - 0xa40], ebx
mov word [ebp - 0xa50], ax
cmp dword [ebp - 0x80c], esi
jb 0x40bc15
mov ecx, dword [ebp - 0x820]
push ecx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0x80c], edi
mov dword [ebp - 0x810], ebx
mov word [ebp - 0x820], dx
cmp dword [ebp - 0x994], esi
jb 0x40bc41
mov eax, dword [ebp - 0x9a8]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x994], edi
mov dword [ebp - 0x998], ebx
mov word [ebp - 0x9a8], cx
cmp dword [ebp - 0x844], esi
jb 0x40bc6d
mov edx, dword [ebp - 0x858]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
mov dword [ebp - 0x844], edi
mov dword [ebp - 0x848], ebx
mov word [ebp - 0x858], ax
cmp dword [ebp - 0xaac], esi
jb 0x40bc99
mov ecx, dword [ebp - 0xac0]
push ecx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0xaac], edi
mov dword [ebp - 0xab0], ebx
mov word [ebp - 0xac0], dx
cmp dword [ebp - 0x87c], esi
jb 0x40bcc5
mov eax, dword [ebp - 0x890]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x87c], edi
mov dword [ebp - 0x880], ebx
mov word [ebp - 0x890], cx
cmp dword [ebp - 0x9cc], esi
jb 0x40bcf1
mov edx, dword [ebp - 0x9e0]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
mov dword [ebp - 0x9cc], edi
mov dword [ebp - 0x9d0], ebx
mov word [ebp - 0x9e0], ax
cmp dword [ebp - 0x8b4], esi
jb 0x40bd1d
mov ecx, dword [ebp - 0x8c8]
push ecx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0x8b4], edi
mov dword [ebp - 0x8b8], ebx
mov word [ebp - 0x8c8], dx
cmp dword [ebp - 0x668], esi
jb 0x40bd49
mov eax, dword [ebp - 0x67c]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x668], edi
mov dword [ebp - 0x66c], ebx
mov word [ebp - 0x67c], cx
cmp dword [ebp - 0xa74], esi
jb 0x40bd75
mov edx, dword [ebp - 0xa88]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
mov dword [ebp - 0xa74], edi
mov dword [ebp - 0xa78], ebx
mov word [ebp - 0xa88], ax
cmp dword [ebp - 0x6a0], esi
jb 0x40bda1
mov ecx, dword [ebp - 0x6b4]
push ecx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0x6a0], edi
mov dword [ebp - 0x6a4], ebx
mov word [ebp - 0x6b4], dx
cmp dword [ebp - 0x684], esi
jb 0x40bdcd
mov eax, dword [ebp - 0x698]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x684], edi
mov dword [ebp - 0x688], ebx
mov word [ebp - 0x698], cx
cmp dword [ebp - 0x6d8], esi
jb 0x40bdf9
mov edx, dword [ebp - 0x6ec]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
mov dword [ebp - 0x6d8], edi
mov dword [ebp - 0x6dc], ebx
mov word [ebp - 0x6ec], ax
cmp dword [ebp - 0x710], esi
jb 0x40be25
mov ecx, dword [ebp - 0x724]
push ecx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0x710], edi
mov dword [ebp - 0x714], ebx
mov word [ebp - 0x724], dx
cmp dword [ebp - 0x748], esi
jb 0x40be51
mov eax, dword [ebp - 0x75c]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x748], edi
mov dword [ebp - 0x74c], ebx
mov word [ebp - 0x75c], cx
cmp dword [ebp - 0x780], esi
jb 0x40be7d
mov edx, dword [ebp - 0x794]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
mov dword [ebp - 0x780], edi
mov dword [ebp - 0x784], ebx
mov word [ebp - 0x794], ax
cmp dword [ebp - 0x7b8], esi
jb 0x40bea9
mov ecx, dword [ebp - 0x7cc]
push ecx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0x7b8], edi
mov dword [ebp - 0x7bc], ebx
mov word [ebp - 0x7cc], dx
cmp dword [ebp - 0x7f0], esi
jb 0x40bed5
mov eax, dword [ebp - 0x804]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x7f0], edi
mov dword [ebp - 0x7f4], ebx
mov word [ebp - 0x804], cx
mov byte [ebp - 4], 0x39
cmp dword [ebp - 0x828], esi
jb 0x40bf05
mov edx, dword [ebp - 0x83c]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
mov word [ebp - 0x83c], ax
mov eax, dword [ebp - 0x644]
mov dword [ebp - 0x828], edi
mov dword [ebp - 0x82c], ebx
cmp dword [ebp - 0x630], esi
jae 0x40bf2e
lea eax, [ebp - 0x644]
mov ecx, dword [ebp - 0x650]
mov edx, dword [ebp - 0x634]
cmp ecx, edx
jae 0x40bf40
mov edx, ecx
mov ecx, dword [ebp - 0x660]
cmp dword [ebp - 0x64c], esi
jae 0x40bf54
lea ecx, [ebp - 0x660]
mov dword [ebp - 0xb34], edx
cmp edx, ebx
jbe 0x40bf82
mov edi, edi
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x40bf78
add ecx, 2
add eax, 2
dec dword [ebp - 0xb34]
jne 0x40bf60
jmp 0x40bf82
sbb eax, eax
and eax, 0xfffffffe
inc eax
cmp eax, ebx
jne 0x40bfa2
mov eax, dword [ebp - 0x650]
mov ecx, dword [ebp - 0x634]
cmp eax, ecx
jae 0x40bf97
or eax, 0xffffffff
jmp 0x40bfa0
xor edx, edx
cmp eax, ecx
setne dl
mov eax, edx
cmp eax, ebx
sete al
cmp al, bl
je 0x40bff3
cmp dword [ebp - 0x630], esi
jb 0x40bfc0
mov eax, dword [ebp - 0x644]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x630], edi
mov dword [ebp - 0x634], ebx
mov word [ebp - 0x644], cx
cmp dword [ebp - 0x64c], esi
jb 0x40bfec
mov edx, dword [ebp - 0x660]
push edx
call fcn.0041381f
add esp, 4
mov al, 1
jmp 0x40c62f
lea eax, [ebp - 0xb30]
call fcn.00409fa0
mov esi, eax
lea eax, [ebp - 0x6d0]
mov byte [ebp - 4], 0x3a
call fcn.00402810
mov edi, eax
lea eax, [ebp - 0x900]
mov byte [ebp - 4], 0x3b
call fcn.00402900
mov dword [ebp - 0xb38], eax
lea eax, [ebp - 0xb14]
mov byte [ebp - 4], 0x3c
call fcn.0040a030
mov dword [ebp - 0xb40], eax
lea eax, [ebp - 0xadc]
mov byte [ebp - 4], 0x3d
call fcn.0040a000
mov dword [ebp - 0xb3c], eax
lea eax, [ebp - 0xaa4]
mov byte [ebp - 4], 0x3e
call fcn.00402900
mov ebx, eax
lea eax, [ebp - 0xa6c]
mov byte [ebp - 4], 0x3f
call fcn.00409f40
push eax
mov edx, 0x42c1c4
lea eax, [ebp - 0xa34]
mov byte [ebp - 4], 0x40
call fcn.00406940
mov ecx, eax
mov eax, ebx
lea ebx, [ebp - 0x9fc]
mov byte [ebp - 4], 0x41
call fcn.00406990
mov ecx, eax
mov eax, dword [ebp - 0xb3c]
lea ebx, [ebp - 0x9c4]
mov byte [ebp - 4], 0x42
call fcn.00406990
mov ecx, eax
mov eax, dword [ebp - 0xb40]
lea ebx, [ebp - 0x98c]
mov byte [ebp - 4], 0x43
call fcn.00406990
mov ecx, eax
mov eax, dword [ebp - 0xb38]
lea ebx, [ebp - 0x954]
mov byte [ebp - 4], 0x44
call fcn.00406990
mov ecx, eax
mov eax, edi
lea ebx, [ebp - 0x91c]
mov byte [ebp - 4], 0x45
call fcn.00406990
mov ecx, eax
mov eax, esi
lea ebx, [ebp - 0x8e4]
mov byte [ebp - 4], 0x46
call fcn.00406990
push eax
lea eax, [ebp - 0x8ac]
push eax
mov byte [ebp - 4], 0x47
call fcn.00412ab0
lea ecx, [ebp - 0x874]
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x48
call section..text
add esp, 0x10
mov esi, eax
lea edx, [ebp - 0x644]
cmp edx, esi
je 0x40c1bc
mov ebx, 8
cmp dword [ebp - 0x630], ebx
jb 0x40c155
mov eax, dword [ebp - 0x644]
push eax
call fcn.0041381f
add esp, 4
xor edi, edi
xor ecx, ecx
mov dword [ebp - 0x630], 7
mov dword [ebp - 0x634], edi
mov word [ebp - 0x644], cx
cmp dword [esi + 0x14], ebx
jae 0x40c18f
mov eax, dword [esi + 0x10]
lea edx, [eax + eax + 2]
push edx
lea eax, [ebp - 0x644]
push esi
push eax
call fcn.00413a80
add esp, 0xc
jmp 0x40c199
mov ecx, dword [esi]
mov dword [ebp - 0x644], ecx
mov dword [esi], edi
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x634], edx
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x630], eax
xor ecx, ecx
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], edi
mov word [esi], cx
jmp 0x40c1be
xor edi, edi
mov esi, 8
lea ebx, [esi - 1]
cmp dword [ebp - 0x860], esi
jb 0x40c1dd
mov edx, dword [ebp - 0x874]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
mov dword [ebp - 0x860], ebx
mov dword [ebp - 0x864], edi
mov word [ebp - 0x874], ax
cmp dword [ebp - 0x898], esi
jb 0x40c209
mov ecx, dword [ebp - 0x8ac]
push ecx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0x898], ebx
mov dword [ebp - 0x89c], edi
mov word [ebp - 0x8ac], dx
cmp dword [ebp - 0x8d0], esi
jb 0x40c235
mov eax, dword [ebp - 0x8e4]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x8d0], ebx
mov dword [ebp - 0x8d4], edi
mov word [ebp - 0x8e4], cx
cmp dword [ebp - 0x908], esi
jb 0x40c261
mov edx, dword [ebp - 0x91c]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
mov dword [ebp - 0x908], ebx
mov dword [ebp - 0x90c], edi
mov word [ebp - 0x91c], ax
cmp dword [ebp - 0x940], esi
jb 0x40c28d
mov ecx, dword [ebp - 0x954]
push ecx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0x940], ebx
mov dword [ebp - 0x944], edi
mov word [ebp - 0x954], dx
cmp dword [ebp - 0x978], esi
jb 0x40c2b9
mov eax, dword [ebp - 0x98c]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x978], ebx
mov dword [ebp - 0x97c], edi
mov word [ebp - 0x98c], cx
cmp dword [ebp - 0x9b0], esi
jb 0x40c2e5
mov edx, dword [ebp - 0x9c4]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
mov dword [ebp - 0x9b0], ebx
mov dword [ebp - 0x9b4], edi
mov word [ebp - 0x9c4], ax
cmp dword [ebp - 0x9e8], esi
jb 0x40c311
mov ecx, dword [ebp - 0x9fc]
push ecx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0x9e8], ebx
mov dword [ebp - 0x9ec], edi
mov word [ebp - 0x9fc], dx
cmp dword [ebp - 0xa20], esi
jb 0x40c33d
mov eax, dword [ebp - 0xa34]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0xa20], ebx
mov dword [ebp - 0xa24], edi
mov word [ebp - 0xa34], cx
cmp dword [ebp - 0xa58], esi
jb 0x40c369
mov edx, dword [ebp - 0xa6c]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
mov dword [ebp - 0xa58], ebx
mov dword [ebp - 0xa5c], edi
mov word [ebp - 0xa6c], ax
cmp dword [ebp - 0xa90], esi
jb 0x40c395
mov ecx, dword [ebp - 0xaa4]
push ecx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0xa90], ebx
mov dword [ebp - 0xa94], edi
mov word [ebp - 0xaa4], dx
cmp dword [ebp - 0xac8], esi
jb 0x40c3c1
mov eax, dword [ebp - 0xadc]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0xac8], ebx
mov dword [ebp - 0xacc], edi
mov word [ebp - 0xadc], cx
cmp dword [ebp - 0xb00], esi
jb 0x40c3ed
mov edx, dword [ebp - 0xb14]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
mov dword [ebp - 0xb00], ebx
mov dword [ebp - 0xb04], edi
mov word [ebp - 0xb14], ax
cmp dword [ebp - 0x8ec], esi
jb 0x40c419
mov ecx, dword [ebp - 0x900]
push ecx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0x8ec], ebx
mov dword [ebp - 0x8f0], edi
mov word [ebp - 0x900], dx
cmp dword [ebp - 0x6bc], esi
jb 0x40c445
mov eax, dword [ebp - 0x6d0]
push eax
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov byte [ebp - 4], 0x39
mov dword [ebp - 0x6bc], ebx
mov dword [ebp - 0x6c0], edi
mov word [ebp - 0x6d0], cx
cmp dword [ebp - 0xb1c], esi
jb 0x40c475
mov edx, dword [ebp - 0xb30]
push edx
call fcn.0041381f
add esp, 4
mov eax, dword [ebp - 0x644]
cmp dword [ebp - 0x630], esi
jae 0x40c489
lea eax, [ebp - 0x644]
mov esi, dword [ebp - 0x650]
mov ebx, dword [ebp - 0x634]
mov edx, esi
cmp esi, ebx
jb 0x40c49d
mov edx, ebx
cmp dword [ebp - 0x64c], 8
mov ecx, dword [ebp - 0x660]
jae 0x40c4b2
lea ecx, [ebp - 0x660]
cmp edx, edi
jbe 0x40c4d9
mov bx, word [ecx]
cmp bx, word [eax]
jne 0x40c4c9
add ecx, 2
add eax, 2
dec edx
jne 0x40c4b6
jmp 0x40c4d3
sbb eax, eax
and eax, 0xfffffffe
inc eax
cmp eax, edi
jne 0x40c53c
mov ebx, dword [ebp - 0x634]
cmp esi, ebx
jb 0x40c53c
xor eax, eax
cmp esi, ebx
setne al
cmp eax, edi
jne 0x40c53c
cmp dword [ebp - 0x630], 8
jb 0x40c500
mov edx, dword [ebp - 0x644]
push edx
call fcn.0041381f
add esp, 4
xor eax, eax
cmp dword [ebp - 0x64c], 8
mov dword [ebp - 0x630], 7
mov dword [ebp - 0x634], edi
mov word [ebp - 0x644], ax
jb 0x40bfec
mov ecx, dword [ebp - 0x660]
push ecx
call fcn.0041381f
add esp, 4
mov al, 1
jmp 0x40c62f
push 1
mov eax, 0x42c1c8
lea esi, [ebp - 0x644]
call fcn.00401e70
cmp dword [ebp - 0x650], edi
ja 0x40c560
push str.invalid_string_position
call fcn.00412cda
mov esi, dword [ebp - 0x660]
mov ebx, 8
cmp dword [ebp - 0x64c], ebx
jae 0x40c579
lea esi, [ebp - 0x660]
cmp dword [ebp - 0x634], edi
ja 0x40c58b
push str.invalid_string_position
call fcn.00412cda
mov ecx, dword [ebp - 0x630]
mov edx, dword [ebp - 0x644]
mov eax, edx
cmp ecx, ebx
jae 0x40c5a3
lea eax, [ebp - 0x644]
mov si, word [esi]
cmp si, word [eax]
jne 0x40c5f0
cmp ecx, ebx
jb 0x40c5b8
push edx
call fcn.0041381f
add esp, 4
xor edx, edx
mov dword [ebp - 0x630], 7
mov dword [ebp - 0x634], edi
mov word [ebp - 0x644], dx
cmp dword [ebp - 0x64c], ebx
jb 0x40bfec
mov eax, dword [ebp - 0x660]
push eax
call fcn.0041381f
add esp, 4
mov al, 1
jmp 0x40c62f
cmp ecx, ebx
jb 0x40c5fd
push edx
call fcn.0041381f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x630], 7
mov dword [ebp - 0x634], edi
mov word [ebp - 0x644], cx
cmp dword [ebp - 0x64c], ebx
jb 0x40c62d
mov edx, dword [ebp - 0x660]
push edx
call fcn.0041381f
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00413810
mov esp, ebp
pop ebp
ret