Function at 0x403510
Capabilities:
Access peb ldr_data
Get process filename

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x438
mov dword [esp + 0x1c], ecx
mov eax, dword fs:[0x30]
nop
test eax, eax
nop
mov eax, dword [eax + 0xc]
nop
test eax, eax
nop
lea esi, [eax + 0x14]
nop
test eax, eax
nop
mov edi, dword [eax + 0x14]
nop
test eax, eax
nop
lea eax, [esp + 0x230]
push 0x208
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
nop
test eax, eax
nop
lea ebp, [esp + 0x28]
push 0x208
push 0
push ebp
call sub.msvcrt.dll_memset
add esp, 0xc
nop
test eax, eax
nop
mov dword [esp + 0x20], esi
cmp edi, esi
je 0x403997
nop word cs:[eax + eax]
nop
test eax, eax
nop
nop
test eax, eax
nop
push 0x208
push 0
lea esi, [esp + 0x238]
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
nop
test eax, eax
nop
push 0x208
push 0
push ebp
call sub.msvcrt.dll_memset
add esp, 0xc
nop
test eax, eax
nop
push dword [edi + 0x20]
push 0x104
push esi
call dword [sym.imp.msvcrt.dll_wcscpy_s]
add esp, 0xc
nop
test eax, eax
nop
push dword [esp + 0x1c]
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x4039b5
mov ebx, eax
cmp eax, 0xa
mov dword [esp + 0x24], edi
ja 0x403610
mov eax, ebx
add al, bl
mov byte [esp + 0xc], al
lea esi, [esp + 0xd]
jmp 0x403632
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
push eax
call fcn.0040ade0
add esp, 4
mov esi, eax
mov dword [esp + 0x14], eax
add edi, 2
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ebx
push ebx
push dword [esp + 0x20]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esi + ebx], 0
nop
test eax, eax
nop
movzx ebx, byte [esp + 0xc]
test bl, 1
je 0x403660
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
jmp 0x403666
shr ebx, 1
lea edi, [esp + 0xd]
cmp ebx, 0x7ffffff0
jae 0x4039ae
cmp ebx, 5
jae 0x4036a0
mov eax, ebx
add al, bl
mov byte [esp], al
lea edx, [esp + 2]
mov eax, edx
test ebx, ebx
je 0x4037e0
lea ecx, [edi + ebx]
cmp ebx, 0x40
jae 0x4036ce
jmp 0x4036e1
mov esi, ebx
or esi, 7
inc esi
js 0x4039be
lea eax, [esi + esi]
push eax
call fcn.0040ade0
add esp, 4
mov dword [esp + 8], eax
or esi, 1
mov dword [esp], esi
mov dword [esp + 4], ebx
lea ecx, [edi + ebx]
cmp ebx, 0x40
jb 0x4036e1
cmp eax, ecx
jae 0x403770
lea edx, [eax + ebx*2]
cmp edi, edx
jae 0x403770
mov edx, eax
mov esi, edi
mov edi, ecx
sub edi, esi
lea eax, [edi - 1]
and edi, 7
je 0x40370d
nop word cs:[eax + eax]
movsx ebx, byte [esi]
mov word [edx], bx
inc esi
add edx, 2
dec edi
jne 0x403700
cmp eax, 7
jb 0x4037e0
nop word cs:[eax + eax]
movsx eax, byte [esi]
mov word [edx], ax
movsx eax, byte [esi + 1]
mov word [edx + 2], ax
movsx eax, byte [esi + 2]
mov word [edx + 4], ax
movsx eax, byte [esi + 3]
mov word [edx + 6], ax
movsx eax, byte [esi + 4]
mov word [edx + 8], ax
movsx eax, byte [esi + 5]
mov word [edx + 0xa], ax
movsx eax, byte [esi + 6]
mov word [edx + 0xc], ax
movsx eax, byte [esi + 7]
mov word [edx + 0xe], ax
add esi, 8
add edx, 0x10
cmp esi, ecx
jne 0x403720
jmp 0x4037e0
mov dword [esp + 0x18], ebx
mov ebp, ebx
and ebp, 0xffffffc0
lea edx, [eax + ebp*2]
lea esi, [edi + ebp]
xor ebx, ebx
nop word cs:[eax + eax]
vpmovsxbw ymm0, xmmword [edi + ebx]
vpmovsxbw ymm1, xmmword [edi + ebx + 0x10]
vpmovsxbw ymm2, xmmword [edi + ebx + 0x20]
vpmovsxbw ymm3, xmmword [edi + ebx + 0x30]
vmovdqu ymmword [eax + ebx*2], ymm0
vmovdqu ymmword [eax + ebx*2 + 0x20], ymm1
vmovdqu ymmword [eax + ebx*2 + 0x40], ymm2
vmovdqu ymmword [eax + ebx*2 + 0x60], ymm3
add ebx, 0x40
cmp ebp, ebx
jne 0x403790
cmp dword [esp + 0x18], ebp
lea ebp, [esp + 0x28]
jne 0x4036e5
nop word [eax + eax]
mov word [edx], 0
nop
test eax, eax
nop
test byte [esp], 1
lea eax, [esp + 2]
je 0x4037f8
mov eax, dword [esp + 8]
push eax
push 0x104
push ebp
vzeroupper
call dword [sym.imp.msvcrt.dll_wcscpy_s]
add esp, 0xc
test byte [esp], 1
je 0x40381d
push dword [esp + 8]
call fcn.0040ae50
add esp, 4
test byte [esp + 0xc], 1
je 0x403830
push dword [esp + 0x14]
call fcn.0040ae50
add esp, 4
nop
test eax, eax
nop
push 0x104
push ebp
mov edi, dword [sym.imp.msvcrt.dll__wcslwr_s]
call edi
add esp, 8
nop
test eax, eax
nop
push 0x104
lea esi, [esp + 0x234]
push esi
call edi
add esp, 8
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
mov word [esp], 0x30
mov edi, esp
push edi
call sub.msvcrt.dll_atoi
add esp, 4
mov dword [esp + 0x18], eax
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
push esi
call sub.msvcrt.dll_wcslen
add esp, 4
mov ebx, eax
nop
test eax, eax
nop
push ebp
call sub.msvcrt.dll_wcslen
add esp, 4
mov ebp, eax
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
mov word [esp], 0x30
push edi
call sub.msvcrt.dll_atoi
add esp, 4
sub ebx, ebp
cmp eax, ebx
ja 0x403945
mov esi, eax
lea edi, [esp + eax*2]
add edi, 0x230
nop word [eax + eax]
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
mov word [esp], 0x30
mov eax, esp
push eax
call sub.msvcrt.dll_atoi
add esp, 4
cmp eax, ebp
jae 0x40392f
nop dword [eax]
nop
test eax, eax
nop
movzx ecx, word [edi + eax*2]
movzx edx, word [esp + eax*2 + 0x28]
nop
test eax, eax
nop
cmp cx, dx
jne 0x40392f
inc eax
cmp ebp, eax
jne 0x403910
mov eax, ebp
nop
test eax, eax
nop
nop
test eax, eax
nop
cmp eax, ebp
je 0x403950
inc esi
add edi, 2
cmp esi, ebx
jbe 0x4038e0
nop
test eax, eax
nop
mov eax, dword [esp + 0x18]
jmp 0x403975
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
mov word [esp], 0x31
mov eax, esp
push eax
call sub.msvcrt.dll_atoi
add esp, 4
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
test eax, eax
mov edi, dword [esp + 0x24]
lea ebp, [esp + 0x28]
jne 0x4039a0
mov edi, dword [edi]
cmp edi, dword [esp + 0x20]
jne 0x403590
nop
test eax, eax
nop
xor eax, eax
jmp 0x4039a3
mov eax, dword [edi + 0x10]
add esp, 0x438
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esp
call fcn.00407a00
lea ecx, [esp + 0xc]
call fcn.00407aa0
call fcn.00407a70
mov esi, eax
test byte [esp + 0xc], 1
je 0x4039dd
jmp 0x403a01
push esi
call fcn.0042fe90
push dword [esp + 8]
call fcn.0040ae50
add esp, 4
test byte [esp + 0xc], 1
je 0x4039dd
jmp 0x403a01
push dword [esp + 0x14]
call fcn.0040ae50
add esp, 4
push esi
call fcn.0042fe90
int3