Function at 0x40b810
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x62c
mov eax, dword [0x64916c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 0x1c]
push esi
push edi
xor edi, edi
mov byte [ebx], 0
mov ecx, dword [0x64ad70]
push edi
push eax
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
mov dword [ebp - reloc.MSVCRT.dll_strncpy], edi
mov byte [ebp - 0x204], 0
mov dword [ebp - reloc.MSVCRT.dll_strncpy], ecx
call fcn.00534e60
mov esi, eax
add esp, 8
mov dword [ebp - reloc.MSVCRT.dll_strncpy], esi
cmp esi, edi
je 0x40e11b
mov eax, dword [ebp + 0x20]
and eax, 1
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
jne 0x40b90a
mov edx, dword [esi + 4]
push 0x40
push edx
call fcn.00531d80
add esp, 4
push eax
push 0x6bb3e0
call fcn.0053e2f0
mov eax, dword [esi + 0x38]
push eax
call fcn.00531d80
add esp, 0x10
mov dword [0x6bb424], eax
cmp eax, edi
je 0x40b8b5
cmp byte [eax], 0
jne 0x40b8b5
mov dword [0x6bb424], edi
cmp byte [ebx], 0
je 0x40b8d2
lea edi, [ebx - 1]
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40b8c0
mov cx, word [0x5c05a8]
mov word [edi], cx
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40b8d7
sub eax, edx
mov edx, dword [ebp + 0x18]
push edx
push 0x5dc3
mov edi, eax
call fcn.00531d80
mov esi, dword [fcn.005c02cc]
add esp, 4
push eax
lea eax, [ebx + edi]
push 0x5c0734
push eax
call esi
add esp, 0x10
jmp 0x40b910
mov esi, dword [fcn.005c02cc]
cmp byte [ebx], 0
je 0x40b92a
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40b918
mov cx, word [0x5c05a8]
mov word [edi], cx
test byte [ebp + 0x20], 2
je 0x40ba2f
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
movzx ecx, byte [eax + 0x338]
push edx
push ecx
call fcn.005345c0
add esp, 8
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
test eax, eax
je 0x40b9ec
mov edx, eax
mov esi, dword [edx + 8]
test esi, esi
jle 0x40b9b3
cmp esi, 3
jge 0x40b9b3
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40b972
sub eax, edx
push esi
push 0x4c4bb8
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
lea eax, [ebx + edi]
push 0x5c0728
push eax
call dword [fcn.005c02cc]
add esp, 0x10
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40b9a1
mov cx, word [0x5c05a8]
mov word [edi], cx
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40b9b8
sub eax, edx
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov esi, eax
mov eax, dword [edx + 4]
push eax
push 0x5e1d
call fcn.00531d80
add esp, 4
push eax
lea ecx, [ebx + esi]
push 0x5c0728
push ecx
call dword [fcn.005c02cc]
jmp 0x40ba12
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40b9f1
sub eax, edx
push 0x5e1d
mov edi, eax
call fcn.00531d80
push eax
lea edx, [ebx + edi]
push 0x5c071c
push edx
call esi
add esp, 0x10
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40ba18
mov ax, word [0x5c05a8]
mov esi, dword [fcn.005c02cc]
mov word [edi], ax
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov eax, dword [ecx + 8]
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
cmp eax, 2
jne 0x40bdef
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 0
jne 0x40ba8a
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ba55
sub eax, edx
push 0x4e33
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
push 0x5e01
call fcn.00531d80
add esp, 4
push eax
lea edx, [ebx + edi]
push 0x5c0714
push edx
call esi
add esp, 0x10
mov eax, dword [0x64ad70]
movzx eax, word [eax + 0x54e]
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0
test eax, eax
je 0x40babd
push eax
call fcn.00533380
add esp, 4
test eax, eax
je 0x40babd
mov ecx, dword [eax + 0x88]
mov dword [ebp - reloc.MSVCRT.dll_strncpy], ecx
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov edi, dword [edx + 0xc]
test edi, 0x8000000
je 0x40bad5
mov esi, 0x5dcf
jmp 0x40bb22
test edi, 0x1000000
je 0x40bae4
mov esi, 0x5dd0
jmp 0x40bb22
test edi, 0x800000
je 0x40baf3
mov esi, 0x5dd1
jmp 0x40bb22
test edi, 0x2000000
je 0x40bb02
mov esi, 0x5dd2
jmp 0x40bb22
test edi, 0x4000000
je 0x40bb11
mov esi, 0x5dd3
jmp 0x40bb22
test edi, 0x10400000
je 0x40bbbd
mov esi, 0x5dd4
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 0
jne 0x40bb4b
lea eax, [ebx - 1]
mov edi, edi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40bb30
mov cx, word [0x5c0710]
mov word [eax], cx
mov dl, byte [0x5c0712]
mov byte [eax + 2], dl
test dword [ebp - reloc.MSVCRT.dll_strncpy], edi
je 0x40bb6e
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bb58
sub eax, edx
push esi
mov edi, eax
call fcn.00531d80
add esp, 4
jmp 0x40bba1
push esi
call fcn.00531d80
push eax
lea edx, reloc.MSVCRT.dll_strncpy
push 0x5c0708
push edx
call dword [fcn.005c02cc]
mov eax, ebx
add esp, 0x10
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bb90
sub eax, edx
mov edi, eax
lea eax, reloc.MSVCRT.dll_strncpy
push eax
push 0x5e02
call fcn.00531d80
add esp, 4
push eax
lea ecx, [ebx + edi]
push ecx
call dword [fcn.005c02cc]
add esp, 0xc
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov eax, dword [ebp + 0x18]
mov edx, dword [ecx + 0x44]
mov dword [ebp - reloc.MSVCRT.dll_strncpy], edx
test eax, eax
je 0x40bbe1
dec eax
imul eax, dword [ecx + 0x9e]
add dword [ebp - reloc.MSVCRT.dll_strncpy], eax
cmp byte [ebx], 0
je 0x40bc01
lea edi, [ebx - 1]
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40bbf0
mov ax, word [0x5c05a8]
mov word [edi], ax
push 0x5e21
call fcn.00531d80
add esp, 4
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bc10
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40bc20
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
mov eax, ebx
rep movsb byte es:[edi], byte [esi]
lea esi, [eax + 1]
jmp 0x40bc40
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bc40
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
push 0
push 0x80000009
sub eax, esi
push 0xa
lea ecx, [ebx + eax]
push ecx
push edx
call fcn.00567e2f
add esp, 0x14
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40bc68
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 0
mov ax, word [0x5c0584]
mov word [edi], ax
jne 0x40d32b
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov eax, dword [ecx + 0x9e]
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
test eax, eax
je 0x40bd39
cmp byte [ebx], 0
je 0x40bcba
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40bca8
mov dx, word [0x5c05a8]
mov word [edi], dx
push 0x5e22
call fcn.00531d80
add esp, 4
mov esi, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bcd0
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40bce0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
mov eax, ebx
rep movsb byte es:[edi], byte [esi]
lea esi, [eax + 1]
jmp 0x40bd00
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bd00
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
push 0
push 0x80000009
sub eax, esi
push 0xa
add eax, ebx
push eax
push ecx
call fcn.00567e2f
add esp, 0x14
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40bd27
mov dx, word [0x5c0584]
mov word [edi], dx
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov eax, dword [eax + 0x9a]
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
test eax, eax
je 0x40d32b
cmp byte [ebx], 0
je 0x40bd72
lea edi, [ebx - 1]
jmp 0x40bd60
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40bd60
mov cx, word [0x5c05a8]
mov word [edi], cx
push 0x5e8a
call fcn.00531d80
add esp, 4
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bd81
sub eax, esi
lea edi, [ebx - 1]
lea ecx, [ecx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40bd90
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
mov eax, ebx
rep movsb byte es:[edi], byte [esi]
lea esi, [eax + 1]
jmp 0x40bdb0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bdb0
push 0
sub eax, esi
push 0x80000009
lea edx, [ebx + eax]
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
push 0xa
push edx
push eax
call fcn.00567e2f
add esp, 0x14
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40bdd8
mov cx, word [0x5c0584]
mov word [edi], cx
jmp 0x40d32b
cmp eax, 4
jne 0x40d02d
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 0
jne 0x40d32b
mov eax, ebx
lea edi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40be10
sub eax, edi
push 0x4e35
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
push 0x5e01
call fcn.00531d80
add esp, 4
push eax
lea edx, [ebx + edi]
push 0x5c0714
push edx
call dword [fcn.005c02cc]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
push eax
push ecx
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0
call fcn.005352a0
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov esi, eax
mov eax, dword [edx + 0xc]
add eax, 0xfffffffd
add esp, 0x18
mov dword [ebp - reloc.MSVCRT.dll_strncpy], esi
cmp eax, 0x31
ja case.0x40be80.4
jmp dword [eax*4 + 0x40e154]
cmp byte [ebx], 0
je 0x40bea1
lea edi, [ebx - 1]
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40be90
mov ax, word [0x5c05a8]
mov word [edi], ax
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bea6
sub eax, edx
push 0x5ee0
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
push 0x5e23
call fcn.00531d80
add esp, 4
push eax
lea ecx, [ebx + edi]
push 0x5c05f4
push ecx
call dword [fcn.005c02cc]
add esp, 0x10
jmp case.0x40be80.4
test esi, esi
je case.0x40be80.43
mov ecx, dword [edx + 0x4c]
test ecx, ecx
je 0x40bf6d
cmp byte [ebx], 0
je 0x40bf11
lea edi, [ebx - 1]
jmp 0x40bf00
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40bf00
mov ax, word [0x5c05a8]
mov word [edi], ax
push 1
push 0x3e8
push ecx
call fcn.004a34b0
add esp, 0xc
push 2
lea ecx, reloc.MSVCRT.dll_strncpy
push ecx
sub esp, 8
fstp qword [esp]
call fcn.004a3510
mov eax, ebx
add esp, 0x10
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bf40
sub eax, edx
lea edx, reloc.MSVCRT.dll_strncpy
push edx
push 0x5e8e
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
lea eax, [ebx + edi]
push eax
call dword [fcn.005c02cc]
add esp, 0xc
cmp byte [ebx], 0
je 0x40bf87
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40bf75
mov cx, word [0x5c05a8]
mov word [edi], cx
push 1
push 0x3e8
push esi
call fcn.004a34b0
add esp, 0xc
push 2
lea edx, reloc.MSVCRT.dll_strncpy
push edx
sub esp, 8
fstp qword [esp]
call fcn.004a3510
add esp, 0x10
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 0x226
mov eax, ebx
lea edx, [eax + 1]
jne 0x40bff2
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bfc0
sub eax, edx
mov edi, eax
lea eax, reloc.MSVCRT.dll_strncpy
push eax
push 0x4c4ba6
call fcn.00531d80
add esp, 4
push eax
lea ecx, [ebx + edi]
push ecx
call dword [fcn.005c02cc]
add esp, 0xc
jmp case.0x40be80.43
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bff2
sub eax, edx
lea edx, reloc.MSVCRT.dll_strncpy
push edx
push 0x5e04
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
lea eax, [ebx + edi]
push eax
call dword [fcn.005c02cc]
add esp, 0xc
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
push 0
lea ecx, reloc.MSVCRT.dll_strncpy
push 0
mov edx, ecx
push edx
mov dword [ebp - reloc.MSVCRT.dll_strncpy], ecx
push 0x5dec
push esi
call fcn.004083c0
add esp, 0x14
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 1
jmp case.0x40be80.4
test esi, esi
je case.0x40be80.43
push 0
lea eax, reloc.MSVCRT.dll_strncpy
push 0
mov ecx, eax
push ecx
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
push 0x5ded
jmp 0x40c044
mov edx, dword [ebp + 0x18]
push 0
push 1
push ebx
push 0x5e07
push edx
call fcn.004083c0
add esp, 0x14
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
push 0
lea eax, reloc.MSVCRT.dll_strncpy
push 0
mov ecx, eax
push ecx
neg esi
push 0x5e08
push esi
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
call fcn.004083c0
lea edi, reloc.MSVCRT.dll_strncpy
add esp, 0x14
dec edi
jmp 0x40c0d0
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c0d0
mov dx, word [0x5c0584]
mov word [edi], dx
test esi, esi
je 0x40c12a
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x40c12a
test esi, esi
jns 0x40c0f9
neg eax
push 0
push 1
push ebx
push 0x5e23
push eax
call fcn.004083c0
add esp, 0x14
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 0
jne 0x40c12a
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c118
mov cx, word [0x5c0584]
mov word [edi], cx
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 0
je case.0x40be80.43
cmp byte [ebx], 0
je 0x40c152
lea edi, [ebx - 1]
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c140
mov dx, word [0x5c05a8]
mov word [edi], dx
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov esi, eax
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c160
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40c170
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
push 0
lea eax, reloc.MSVCRT.dll_strncpy
push 0
mov ecx, eax
push ecx
neg esi
push 0x5e09
push esi
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
call fcn.004083c0
lea edi, reloc.MSVCRT.dll_strncpy
add esp, 0x14
dec edi
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c1c0
jmp 0x40c0d8
test esi, esi
je case.0x40be80.43
push 0
lea eax, reloc.MSVCRT.dll_strncpy
push 0
mov ecx, eax
push ecx
neg esi
push 0x5e0a
push esi
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
call fcn.004083c0
lea edi, reloc.MSVCRT.dll_strncpy
add esp, 0x14
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c200
jmp 0x40c0d8
test esi, esi
je case.0x40be80.43
cmp byte [ebx], 0
je 0x40c231
lea edi, [ebx - 1]
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c220
mov ax, word [0x5c05a8]
mov word [edi], ax
mov ecx, edx
mov edi, dword [ecx + 0x4c]
test edi, edi
je 0x40c2bc
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c243
sub eax, edx
push 0x5e68
mov esi, eax
call fcn.00531d80
add esp, 4
push eax
push 0x5e23
call fcn.00531d80
add esp, 4
push eax
lea edx, [ebx + esi]
push 0x5c05f4
push edx
call dword [fcn.005c02cc]
mov eax, ebx
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c281
push 0
push 0x80000009
sub eax, edx
push 0xa
add eax, ebx
push eax
neg edi
push edi
call fcn.00567e2f
add esp, 0x14
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c2a4
mov cx, word [0x5c05a8]
mov esi, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov word [edi], cx
mov edi, 0x37
sub edi, esi
cmp edi, 5
jge 0x40c2cd
mov edi, 5
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c2d2
sub eax, edx
push edi
push 0x5e67
mov esi, eax
call fcn.00531d80
add esp, 4
push eax
lea edx, [ebx + esi]
push edx
call dword [fcn.005c02cc]
add esp, 0xc
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
push 0
lea eax, reloc.MSVCRT.dll_strncpy
push 0
mov ecx, eax
push ecx
neg esi
push 0x5e0b
push esi
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
call fcn.004083c0
lea edi, reloc.MSVCRT.dll_strncpy
add esp, 0x14
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c330
jmp 0x40c0d8
test esi, esi
je case.0x40be80.43
push 0
lea eax, reloc.MSVCRT.dll_strncpy
push 0
mov ecx, eax
push ecx
push 0x5e0c
push esi
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
call fcn.004083c0
lea edi, reloc.MSVCRT.dll_strncpy
add esp, 0x14
dec edi
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c370
jmp 0x40c0d8
test esi, esi
je case.0x40be80.43
mov eax, edx
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x40c3a1
push 0
push 1
push ebx
push 0x5e23
push eax
call fcn.004083c0
add esp, 0x14
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
add ecx, 0x1859
push ecx
call fcn.00535340
push 0
push 3
push ebx
push 0x5e0d
push eax
call fcn.004083c0
add esp, 0x18
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
push 0
push 3
push ebx
push 0x5e0e
push esi
call fcn.004083c0
add esp, 0x14
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
push 0
push 3
push ebx
push 0x5e0f
push esi
call fcn.004083c0
add esp, 0x14
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
push 0
push 3
push ebx
push 0x5e10
push esi
call fcn.004083c0
add esp, 0x14
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
push 0
lea edx, reloc.MSVCRT.dll_strncpy
push 0
mov eax, edx
push eax
push 0x5e11
push esi
mov dword [ebp - reloc.MSVCRT.dll_strncpy], edx
call fcn.004083c0
lea edi, reloc.MSVCRT.dll_strncpy
add esp, 0x14
dec edi
jmp 0x40c460
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c460
mov cx, word [0x5c0584]
mov word [edi], cx
jmp case.0x40be80.4
test esi, esi
je case.0x40be80.43
push 0
lea edx, reloc.MSVCRT.dll_strncpy
push 0
mov eax, edx
push eax
push 0x5e12
push esi
mov dword [ebp - reloc.MSVCRT.dll_strncpy], edx
call fcn.004083c0
lea edi, reloc.MSVCRT.dll_strncpy
add esp, 0x14
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c4a7
mov cx, word [0x5c0584]
mov word [edi], cx
jmp case.0x40be80.4
test esi, esi
je case.0x40be80.43
mov ecx, dword [edx + 0x4c]
test ecx, ecx
je 0x40c563
cmp byte [ebx], 0
je 0x40c4f1
lea edi, [ebx - 1]
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c4e0
mov ax, word [0x5c05a8]
mov word [edi], ax
push 1
push 0x3e8
push ecx
call fcn.004a34b0
fmul qword [0x5c0520]
add esp, 0xc
push 1
lea ecx, reloc.MSVCRT.dll_strncpy
push ecx
sub esp, 8
fstp qword [esp]
call fcn.004a3510
mov eax, ebx
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c523
sub eax, edx
lea edx, reloc.MSVCRT.dll_strncpy
push edx
push 0x5de1
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
push 0x5e23
call fcn.00531d80
add esp, 4
push eax
lea eax, [ebx + edi]
push 0x5c06fc
push eax
call dword [fcn.005c02cc]
add esp, 0x14
cmp byte [ebx], 0
je 0x40c582
lea edi, [ebx - 1]
jmp 0x40c570
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c570
mov cx, word [0x5c05a8]
mov word [edi], cx
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c587
sub eax, edx
mov edi, eax
mov eax, 0x66666667
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push 0x5de1
call fcn.00531d80
add esp, 4
push eax
lea ecx, [ebx + edi]
push 0x5c06f4
push ecx
call dword [fcn.005c02cc]
add esp, 0x10
jmp case.0x40be80.43
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0xf
jmp 0x40c60f
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0x10
jmp 0x40c60f
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0x11
jmp 0x40c60f
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0x12
jmp 0x40c60f
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0x13
jmp 0x40c60f
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0x14
test esi, esi
je case.0x40be80.43
mov eax, dword [edx + 0x4c]
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
test eax, eax
je case.0x40be80.43
test esi, esi
jns 0x40c634
neg eax
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
cmp byte [ebx], 0
je 0x40c651
lea edi, [ebx - 1]
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c640
mov ax, word [0x5c05a8]
mov word [edi], ax
push 0x5e23
call fcn.00531d80
add esp, 4
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c660
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40c670
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, eax
push 0
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
push 0x5ddb
push ecx
call fcn.004083c0
add esp, 0x14
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c6a2
mov dx, word [0x5c05a8]
mov eax, ebx
mov word [edi], dx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c6c0
sub eax, edx
mov esi, eax
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
push eax
push 0x5ddb
call fcn.00531d80
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
add esp, 4
push eax
add ecx, 0x5dc0
push ecx
call fcn.00531d80
add esp, 4
push eax
lea edx, [ebx + esi]
push 0x5c06ec
push edx
call dword [fcn.005c02cc]
add esp, 0x14
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
mov eax, edx
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je 0x40c7b4
cmp byte [ebx], 0
je 0x40c742
lea edi, [ebx - 1]
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c730
mov dx, word [0x5c05a8]
mov word [edi], dx
push 1
push 0x3e8
push ecx
call fcn.004a34b0
fmul qword [0x5c0520]
add esp, 0xc
push 1
lea eax, reloc.MSVCRT.dll_strncpy
push eax
sub esp, 8
fstp qword [esp]
call fcn.004a3510
mov eax, ebx
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c774
lea ecx, reloc.MSVCRT.dll_strncpy
push ecx
sub eax, edx
push 0x5de0
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
push 0x5e23
call fcn.00531d80
add esp, 4
push eax
lea edx, [ebx + edi]
push 0x5c06fc
push edx
call dword [fcn.005c02cc]
add esp, 0x14
cmp byte [ebx], 0
je 0x40c7d1
lea edi, [ebx - 1]
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c7c0
mov ax, word [0x5c05a8]
mov word [edi], ax
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c7d6
sub eax, edx
mov edi, eax
mov eax, 0x66666667
imul esi
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push 0x5de0
call fcn.00531d80
add esp, 4
push eax
lea edx, [ebx + edi]
push 0x5c06f4
push edx
call dword [fcn.005c02cc]
add esp, 0x10
jmp case.0x40be80.43
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0x19
jmp 0x40c82e
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0x1a
test esi, esi
je case.0x40be80.43
mov eax, edx
mov eax, dword [eax + 0x4c]
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
test eax, eax
je 0x40c8ae
cmp byte [ebx], 0
je 0x40c862
lea edi, [ebx - 1]
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c850
mov cx, word [0x5c05a8]
mov word [edi], cx
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c867
sub eax, edx
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov edi, eax
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
push edx
add eax, 0x5dc0
push eax
call fcn.00531d80
add esp, 4
push eax
push 0x5e23
call fcn.00531d80
add esp, 4
push eax
lea ecx, [ebx + edi]
push 0x5c06ec
push ecx
call dword [fcn.005c02cc]
add esp, 0x14
cmp byte [ebx], 0
je 0x40c8c8
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c8b6
mov dx, word [0x5c05a8]
mov word [edi], dx
mov eax, ebx
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c8d0
sub eax, edx
mov edi, eax
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
push esi
add eax, 0x5dc0
push eax
call fcn.00531d80
add esp, 4
push eax
lea ecx, [ebx + edi]
push 0x5c06e4
push ecx
call dword [fcn.005c02cc]
add esp, 0x10
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
mov eax, dword [edx + 0x4c]
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
test eax, eax
je 0x40c980
cmp byte [ebx], 0
je 0x40c936
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c925
mov ax, word [0x5c05a8]
mov word [edi], ax
mov eax, ebx
lea edx, [eax + 1]
jmp 0x40c940
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c940
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
push ecx
sub eax, edx
push 0x5e69
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
push 0x5e23
call fcn.00531d80
add esp, 4
push eax
lea edx, [ebx + edi]
push 0x5c06ec
push edx
call dword [fcn.005c02cc]
add esp, 0x14
cmp byte [ebx], 0
je 0x40c999
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c988
mov ax, word [0x5c05a8]
mov word [edi], ax
mov eax, ebx
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c9a0
sub eax, edx
push esi
mov edi, eax
push 0x5e69
jmp 0x40c8e8
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0xaa
jmp 0x40c9d8
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0xab
jmp 0x40c9d8
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0x21
test esi, esi
je case.0x40be80.43
mov eax, dword [edx + 0x4c]
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
test eax, eax
je 0x40ca58
cmp byte [ebx], 0
je 0x40ca06
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c9f5
mov ax, word [0x5c05a8]
mov word [edi], ax
mov eax, ebx
lea edx, [eax + 1]
jmp 0x40ca10
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ca10
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
sub eax, edx
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
push ecx
add edx, 0x5dc0
push edx
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
push 0x5e23
call fcn.00531d80
add esp, 4
push eax
lea eax, [ebx + edi]
push 0x5c06d8
push eax
call dword [fcn.005c02cc]
add esp, 0x14
cmp byte [ebx], 0
je 0x40ca72
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40ca60
mov cx, word [0x5c05a8]
mov word [edi], cx
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ca77
sub eax, edx
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
add edx, 0x5dc0
push esi
push edx
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
lea eax, [ebx + edi]
push 0x5c06f4
push eax
call dword [fcn.005c02cc]
add esp, 0x10
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
push 0
lea ecx, reloc.MSVCRT.dll_strncpy
push 0
mov edx, ecx
push edx
neg esi
push 0x5e18
push esi
mov dword [ebp - reloc.MSVCRT.dll_strncpy], ecx
call fcn.004083c0
lea edi, reloc.MSVCRT.dll_strncpy
add esp, 0x14
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40cae2
mov ax, word [0x5c0584]
mov word [edi], ax
jmp case.0x40be80.4
test esi, esi
je case.0x40be80.43
mov ecx, edx
mov eax, dword [ecx + 0x4c]
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
test eax, eax
je 0x40cb6e
cmp byte [ebx], 0
je 0x40cb29
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40cb17
mov dx, word [0x5c05a8]
mov word [edi], dx
mov eax, ebx
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40cb30
sub eax, edx
lea edi, [ebx + eax]
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
push eax
push 0x5ee1
call fcn.00531d80
add esp, 4
push eax
push 0x5e23
call fcn.00531d80
add esp, 4
push eax
push 0x5c06ec
push edi
call dword [fcn.005c02cc]
add esp, 0x14
cmp byte [ebx], 0
je 0x40cb88
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40cb76
mov cx, word [0x5c05a8]
mov word [edi], cx
mov eax, ebx
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40cb90
sub eax, edx
push esi
push 0x5ee1
lea edi, [ebx + eax]
call fcn.00531d80
add esp, 4
push eax
push 0x5c06d0
push edi
call dword [fcn.005c02cc]
add esp, 0x10
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
mov eax, dword [edx + 0x4c]
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
test eax, eax
je 0x40cc31
cmp byte [ebx], 0
je 0x40cbf1
lea edi, [ebx - 1]
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40cbe0
mov ax, word [0x5c05a8]
mov word [edi], ax
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40cbf6
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
push ecx
sub eax, edx
push 0x3c
lea edi, [ebx + eax]
call fcn.00531d80
add esp, 4
push eax
push 0x5e23
call fcn.00531d80
add esp, 4
push eax
push 0x5c06c4
push edi
call dword [fcn.005c02cc]
add esp, 0x14
cmp byte [ebx], 0
je 0x40cc52
lea edi, [ebx - 1]
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40cc40
mov dx, word [0x5c05a8]
mov word [edi], dx
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40cc57
sub eax, edx
push esi
push 0x3c
lea edi, [ebx + eax]
call fcn.00531d80
add esp, 4
push eax
push 0x5c06b8
push edi
call dword [fcn.005c02cc]
add esp, 0x10
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
mov eax, edx
mov esi, dword [eax + 0x4c]
test esi, esi
je 0x40ccfd
cmp byte [ebx], 0
je 0x40ccb2
lea edi, [ebx - 1]
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40cca0
mov cx, word [0x5c05a8]
mov word [edi], cx
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ccb7
sub eax, edx
push esi
push 0x5dd9
lea edi, [ebx + eax]
call fcn.00531d80
add esp, 4
push eax
push 0x519c
call fcn.00531d80
add esp, 4
push eax
push 0x5e23
call fcn.00531d80
add esp, 4
push eax
push 0x5c06ac
push edi
call dword [fcn.005c02cc]
add esp, 0x18
cmp byte [ebx], 0
je 0x40cd17
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40cd05
mov dx, word [0x5c05a8]
mov word [edi], dx
mov eax, ebx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40cd20
sub eax, edx
lea edi, [ebx + eax]
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
push eax
push 0x5dd9
call fcn.00531d80
add esp, 4
push eax
push 0x519c
call fcn.00531d80
add esp, 4
push eax
push 0x5c06ec
push edi
call dword [fcn.005c02cc]
add esp, 0x14
jmp case.0x40be80.43
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0x509b
jmp 0x40cd79
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0x509c
test esi, esi
je case.0x40be80.43
mov ecx, edx
mov esi, dword [ecx + 0x4c]
test esi, esi
je 0x40cdfa
cmp byte [ebx], 0
je 0x40cda4
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40cd92
mov dx, word [0x5c05a8]
mov word [edi], dx
mov eax, ebx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40cdb0
sub eax, edx
mov edi, eax
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
push esi
push eax
call fcn.00531d80
add esp, 4
push eax
push 0x519c
call fcn.00531d80
add esp, 4
push eax
push 0x5e23
call fcn.00531d80
add esp, 4
push eax
lea ecx, [ebx + edi]
push 0x5c06ac
push ecx
call dword [fcn.005c02cc]
add esp, 0x18
cmp byte [ebx], 0
je 0x40ce14
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40ce02
mov dx, word [0x5c05a8]
mov word [edi], dx
mov eax, ebx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ce20
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
sub eax, edx
mov edi, eax
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
push eax
push ecx
call fcn.00531d80
add esp, 4
push eax
push 0x519c
call fcn.00531d80
add esp, 4
push eax
lea edx, [ebx + edi]
push 0x5c06ec
push edx
call dword [fcn.005c02cc]
add esp, 0x14
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
mov eax, edx
cmp dword [eax + 0x4c], 0
je case.0x40be80.43
cmp byte [ebx], 0
je 0x40ce95
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40ce83
mov cx, word [0x5c05a8]
mov word [edi], cx
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40ce98
mov dx, word [0x5c05a8]
mov eax, ebx
mov word [edi], dx
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ceb0
sub eax, edx
push esi
push 0x5ddb
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
push 0x4c5f12
call fcn.00531d80
add esp, 4
push eax
push 0x5e23
call fcn.00531d80
add esp, 4
push eax
lea eax, [ebx + edi]
push 0x5c06ac
push eax
call dword [fcn.005c02cc]
add esp, 0x18
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
mov ecx, edx
cmp dword [ecx + 0x4c], 0
je case.0x40be80.43
cmp byte [ebx], 0
je 0x40cf32
lea edi, [ebx - 1]
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40cf20
mov dx, word [0x5c05a8]
mov word [edi], dx
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40cf35
mov ax, word [0x5c05a8]
mov word [edi], ax
mov eax, ebx
lea edx, [eax + 1]
jmp 0x40cf50
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40cf50
sub eax, edx
push esi
push 0x5ddd
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
push 0x5e23
call fcn.00531d80
add esp, 4
push eax
lea ecx, [ebx + edi]
push 0x5c06ec
push ecx
call dword [fcn.005c02cc]
add esp, 0x14
jmp case.0x40be80.43
test esi, esi
je case.0x40be80.43
cmp dword [edx + 0x4c], 0
je case.0x40be80.43
cmp byte [ebx], 0
je 0x40cfc1
lea edi, [ebx - 1]
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40cfb0
mov ax, word [0x5c05a8]
mov word [edi], ax
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40cfc4
mov cx, word [0x5c05a8]
mov eax, ebx
mov word [edi], cx
lea edx, [eax + 1]
jmp 0x40cfe0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40cfe0
sub eax, edx
push esi
push 0x5ddb
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
push 0x4c5f08
call fcn.00531d80
add esp, 4
push eax
push 0x5e23
call fcn.00531d80
add esp, 4
push eax
lea edx, [ebx + edi]
push 0x5c06ac
push edx
call dword [fcn.005c02cc]
add esp, 0x18
jmp case.0x40be80.43
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 0
jne 0x40d32b
mov eax, ebx
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d040
sub eax, edx
push 0x4e34
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
push 0x5e01
call fcn.00531d80
add esp, 4
push eax
lea eax, [ebx + edi]
push 0x5c0714
push eax
call esi
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov eax, dword [ecx + 0x9e]
add esp, 0x10
test eax, eax
je 0x40d182
mov edx, ecx
test dword [edx + 0xd8], 0x20000000
je 0x40d146
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov cl, byte [ecx + 0x3d1]
cmp cl, 3
je 0x40d0b5
cmp cl, 2
jne 0x40d146
lea edi, [eax + eax*4]
add edi, edi
mov ecx, edi
imul ecx, ecx, 0x64
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add edi, eax
mov eax, 0x66666667
imul edi
push 0
sar edx, 2
push 1
mov esi, edx
push ebx
shr esi, 0x1f
add esi, edx
push 0x5e20
push esi
call fcn.004083c0
mov ecx, esi
neg ecx
add ecx, ecx
add ecx, ecx
sub ecx, esi
lea ecx, [edi + ecx*2]
add esp, 0x14
test ecx, ecx
je 0x40d159
mov esi, ebx
lea edx, [esi + 1]
lea esp, [esp]
mov al, byte [esi]
inc esi
test al, al
jne 0x40d110
sub esi, edx
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*4]
add edx, edx
sub ecx, edx
push ecx
lea eax, [ebx + esi]
push 0x5c06a8
push eax
call dword [fcn.005c02cc]
add esp, 0xc
jmp 0x40d159
push 0
push 1
push ebx
push 0x5e20
push eax
call fcn.004083c0
add esp, 0x14
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
test dword [ecx + 0xd8], 0x30000000
jne 0x40d182
lea edi, [ebx - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40d170
mov dx, word [0x5c0584]
mov word [edi], dx
mov esi, dword [ebp - reloc.MSVCRT.dll_strncpy]
test dword [esi + 0xd8], 0x10000000
jne 0x40d1c5
mov eax, dword [esi + 0x9a]
test eax, eax
je 0x40d1c5
push 0
push 1
push ebx
push 0x5e89
push eax
call fcn.004083c0
add esp, 0x14
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40d1b4
mov ax, word [0x5c0584]
mov word [edi], ax
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x40d243
cmp byte [ebx], 0
je 0x40d1e6
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40d1d4
mov dx, word [0x5c05a8]
mov word [edi], dx
push 1
push 0x3e8
push ecx
call fcn.004a34b0
add esp, 0xc
push 0
lea eax, reloc.MSVCRT.dll_strncpy
push eax
sub esp, 8
fstp qword [esp]
call fcn.004a3510
mov eax, ebx
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d212
lea ecx, reloc.MSVCRT.dll_strncpy
push ecx
sub eax, edx
push 0x5e8c
mov esi, eax
call fcn.00531d80
add esp, 4
lea edx, [ebx + esi]
mov esi, dword [fcn.005c02cc]
push eax
push edx
call esi
add esp, 0xc
jmp 0x40d249
mov esi, dword [fcn.005c02cc]
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 0x13
jne 0x40d32b
cmp byte [ebx], 0
je 0x40d271
lea edi, [ebx - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40d260
mov ax, word [0x5c05a8]
mov word [edi], ax
lea eax, [ebx - 1]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40d274
mov cx, word [0x5c05ec]
mov word [eax], cx
mov dl, byte [0x5c05ee]
mov byte [eax + 2], dl
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
movzx edx, word [eax + 0xf10]
mov eax, ebx
test dx, dx
jne 0x40d2c7
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d2a6
sub eax, edx
push 0x5ec1
mov edi, eax
call fcn.00531d80
push eax
push 0x5c05dc
lea ecx, [ebx + edi]
push ecx
jmp 0x40d302
lea edi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d2d0
sub eax, edi
push edx
mov edi, eax
call fcn.00536c30
push eax
call fcn.00531d80
add esp, 8
push eax
push 0x5ec1
call fcn.00531d80
add esp, 4
push eax
push 0x5c05e4
lea eax, [ebx + edi]
push eax
call esi
add esp, 0x10
lea eax, [ebx - 1]
lea ebx, [ebx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40d310
mov cx, word [0x5c0630]
mov word [eax], cx
mov dl, byte [0x5c0632]
mov byte [eax + 2], dl
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
push 0
push eax
push ecx
call fcn.00535210
add esp, 0xc
test eax, eax
je 0x40d38f
cmp eax, 1
jle 0x40d38f
cmp byte [ebx], 0
je 0x40d363
lea edi, [ebx - 1]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40d351
mov dx, word [0x5c05a8]
mov word [edi], dx
mov ecx, ebx
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x40d368
push eax
sub ecx, esi
push 0x5e88
mov esi, ecx
call fcn.00531d80
add esp, 4
push eax
lea eax, [ebx + esi]
push eax
call dword [fcn.005c02cc]
add esp, 0xc
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 0
jne 0x40d82c
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov edx, dword [ecx + 0x92]
test edx, edx
je 0x40d3f7
cmp byte [ebx], 0
je 0x40d3c5
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40d3b4
mov ax, word [0x5c05a8]
mov word [edi], ax
mov eax, ebx
lea esi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d3d0
push edx
sub eax, esi
push 0x5e1f
mov esi, eax
call fcn.00531d80
add esp, 4
push eax
lea ecx, [ebx + esi]
push ecx
call dword [fcn.005c02cc]
add esp, 0xc
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 0x1c1
je 0x40d686
cmp byte [ebx], 0
je 0x40d422
lea edi, [ebx - 1]
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40d410
mov dx, word [0x5c05a8]
mov word [edi], dx
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d427
sub eax, edx
push 0x5e13
mov esi, eax
call fcn.00531d80
push eax
lea eax, [ebx + esi]
push 0x5c05cc
push eax
call dword [fcn.005c02cc]
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov eax, dword [ecx + 0x10]
add esp, 0x10
cmp eax, 9
ja case.0x40d461.3
jmp dword [eax*4 + 0x40e21c]
push 0x5e14
call fcn.00531d80
add esp, 4
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d477
sub eax, esi
lea edi, [ebx - 1]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40d483
jmp 0x40d678
push 0x5e15
call fcn.00531d80
add esp, 4
mov esi, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d4a0
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40d4b0
jmp 0x40d678
test dword [ecx + 0xd8], reloc.MSVCRT.dll_strncpy
je 0x40d4fd
test dword [ecx + 0xdc], reloc.MSVCRT.dll_strncpy
je 0x40d4fd
push 0x5f37
call fcn.00531d80
add esp, 4
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d4e4
sub eax, esi
lea edi, [ebx - 1]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40d4f0
jmp 0x40d678
push 0x5e16
call fcn.00531d80
add esp, 4
mov esi, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d510
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40d520
jmp 0x40d678
push 0x5e53
call fcn.00531d80
add esp, 4
mov esi, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d540
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40d550
jmp 0x40d678
push 0x5e81
call fcn.00531d80
add esp, 4
mov esi, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d570
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40d580
jmp 0x40d678
push 0x5368
call fcn.00531d80
add esp, 4
mov esi, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d5a0
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40d5b0
jmp 0x40d678
push 0x5369
call fcn.00531d80
add esp, 4
mov esi, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d5d0
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40d5e0
jmp 0x40d678
push 0x537c
call fcn.00531d80
add esp, 4
mov esi, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d600
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40d610
jmp 0x40d678
push 0x4c4ba2
call fcn.00531d80
add esp, 4
mov esi, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d630
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40d640
jmp 0x40d678
push 0x5e17
call fcn.00531d80
add esp, 4
mov esi, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d660
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40d670
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [ebx], 0
je 0x40d6a2
lea edi, [ebx - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40d690
mov cx, word [0x5c05a8]
mov word [edi], cx
mov edi, dword [ebp - reloc.MSVCRT.dll_strncpy]
movzx eax, word [edi + 0x49b]
movzx edx, word [edi + 0x4a7]
movzx ecx, word [edi + 0x4a5]
push 0
add edx, eax
push edx
movzx edx, word [edi + 0x499]
add ecx, edx
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
push ecx
mov ecx, dword [ebp + 0x18]
lea eax, reloc.MSVCRT.dll_strncpy
push eax
push ecx
push edx
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0
call fcn.005353e0
add esp, 0x18
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 2
mov esi, eax
je 0x40d781
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
push eax
call fcn.00527d90
add esp, 4
test eax, eax
jne 0x40d781
cmp dword [edi + reloc.MSVCRT.dll_strncpy], esi
jae 0x40d745
lea eax, [ebx - 1]
lea ecx, [ecx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40d720
mov cx, word [0x5c0634]
mov word [eax], cx
mov dl, byte [0x5c0636]
mov byte [eax + 2], dl
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 1
mov eax, ebx
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d750
sub eax, edx
push esi
push 0x5e18
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
lea eax, [ebx + edi]
push 0x5c0734
push eax
call dword [fcn.005c02cc]
add esp, 0x10
jmp 0x40d805
movzx ecx, word [edi + 0x3c3]
cmp ecx, esi
jge 0x40d7b5
lea eax, [ebx - 1]
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40d790
mov dx, word [0x5c0634]
mov word [eax], dx
mov cl, byte [0x5c0636]
mov byte [eax + 2], cl
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 1
mov eax, ebx
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d7c0
sub eax, edx
mov edi, eax
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, eax
imul edx, edx, 0x64
sub esi, edx
push esi
push eax
push 0x5e19
call fcn.00531d80
add esp, 4
push eax
lea eax, [ebx + edi]
push 0x5c069c
push eax
call dword [fcn.005c02cc]
add esp, 0x14
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 0
je 0x40d82c
lea eax, [ebx - 1]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40d811
mov cx, word [0x5c0630]
mov word [eax], cx
mov dl, byte [0x5c0632]
mov byte [eax + 2], dl
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov eax, dword [eax + 0x70]
test eax, eax
je 0x40dae8
push eax
call fcn.0052c1e0
add esp, 4
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
test eax, eax
je case.0x40be80.43
cmp byte [ebx], 0
je 0x40d872
lea edi, [ebx - 1]
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40d860
mov cx, word [0x5c05a8]
mov word [edi], cx
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov ecx, dword [eax + 0x70]
push 0x200
lea edx, reloc.MSVCRT.dll_strncpy
push edx
push ecx
call fcn.0052c220
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
movzx edx, word [edx + 0x3cf]
mov eax, ebx
add esp, 0xc
mov dword [ebp - reloc.MSVCRT.dll_strncpy], edx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d8a8
sub eax, edi
mov edi, eax
lea eax, reloc.MSVCRT.dll_strncpy
push eax
push edx
push 0x5e1b
call fcn.00531d80
add esp, 4
push eax
lea ecx, [ebx + edi]
push ecx
call dword [fcn.005c02cc]
add esp, 0x10
lea edi, [ebx - 1]
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40d8e0
mov dx, word [0x5c05a8]
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov word [edi], dx
mov esi, dword [eax + 0x74]
test esi, esi
jne 0x40d904
mov esi, 0x1c20
mov eax, ebx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d910
sub eax, edx
push 0x53ce
mov edi, eax
call fcn.00531d80
push eax
lea ecx, [ebx + edi]
push 0x5c05cc
push ecx
call dword [fcn.005c02cc]
mov eax, ebx
add esp, 0x10
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d940
sub eax, edx
lea edx, [ebx + eax]
push edx
push 0x5e75
push esi
call fcn.004a3130
add esp, 0xc
cmp dword [ebp + 0x20], 1
je 0x40d9cb
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40d964
mov ax, word [0x5c05a8]
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov word [edi], ax
movzx edx, word [ecx + 0x78]
test edx, edx
jne 0x40d988
mov edx, 0x13bf
mov eax, ebx
lea edi, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d990
sub eax, edi
push edx
mov edi, eax
call fcn.005333b0
push eax
call fcn.00531d80
add esp, 8
push eax
push 0x53cf
call fcn.00531d80
add esp, 4
push eax
lea edx, [ebx + edi]
push 0x5c05f4
push edx
call dword [fcn.005c02cc]
add esp, 0x10
lea edi, [ebx - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40d9d0
mov ax, word [0x5c05a8]
push 0x5e1c
mov word [edi], ax
call fcn.00531d80
add esp, 4
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d9f0
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40da00
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
movzx esi, word [ecx + 0x15d1]
movzx edx, word [eax + 0x4ab]
movzx ecx, word [eax + 0x3d8]
movzx eax, word [eax + 0x49f]
sub edx, ecx
add edx, eax
mov eax, ebx
cmp edx, esi
lea edx, [eax + 1]
jl 0x40da65
jmp 0x40da50
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40da50
push esi
sub eax, edx
push 0x5c0624
lea ecx, [ebx + eax]
push ecx
jmp 0x40da78
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40da65
push esi
sub eax, edx
push 0x5c0614
lea edx, [ebx + eax]
push edx
call dword [fcn.005c02cc]
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
movsx edx, byte [eax + 0x15d7]
add esp, 0xc
cmp edx, 1
jle case.0x40be80.43
cmp byte [ebx], 0
je 0x40dab2
lea edi, [ebx - 1]
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40daa0
mov cx, word [0x5c05a8]
mov word [edi], cx
mov eax, ebx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40dab7
push edx
sub eax, esi
push 0x5f38
mov esi, eax
call fcn.00531d80
add esp, 4
push eax
lea edx, [ebx + esi]
push 0x5c0734
push edx
call dword [fcn.005c02cc]
add esp, 0x10
jmp case.0x40be80.43
mov edi, dword [ebp - reloc.MSVCRT.dll_strncpy]
lea eax, reloc.MSVCRT.dll_strncpy
push eax
call fcn.00521a20
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
add esp, 4
cmp dword [ecx + 0x40], 0
mov esi, eax
je 0x40dcb6
mov ecx, dword [ebp + 0x18]
push 0
lea edx, reloc.MSVCRT.dll_strncpy
push edx
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
lea eax, reloc.MSVCRT.dll_strncpy
push eax
push 0
push ecx
push edx
call fcn.005350f0
movzx eax, word [edi + 0x4a3]
movzx ecx, word [edi + 0x497]
add eax, ecx
sub eax, esi
cdq
sub eax, edx
add esp, 0x18
sar eax, 1
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
jns 0x40db5d
mov dword [ebp - reloc.MSVCRT.dll_strncpy], 0
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
test dword [eax + 0xd8], 0x80000000
je 0x40dca3
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 0x1c1
je 0x40dca3
cmp byte [ebx], 0
je 0x40dba2
lea edi, [ebx - 1]
jmp 0x40db90
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40db90
mov dx, word [0x5c05a8]
mov word [edi], dx
mov edi, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov eax, ebx
lea edx, [eax + 1]
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], edi
je 0x40dbf0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40dbb5
sub eax, edx
mov esi, eax
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
push edi
push eax
push 0x5ddb
call fcn.00531d80
add esp, 4
push eax
lea ecx, [ebx + esi]
push 0x5c0690
push ecx
call dword [fcn.005c02cc]
add esp, 0x14
jmp 0x40dc1c
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40dbf0
sub eax, edx
push edi
push 0x5ddb
mov esi, eax
call fcn.00531d80
add esp, 4
push eax
lea edx, [ebx + esi]
push 0x5c0688
push edx
call dword [fcn.005c02cc]
add esp, 0x10
mov esi, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov byte [ebp - 0x604], 0
mov edi, 1
add esi, 0xc2
cmp word [esi], 0
je 0x40dc63
lea eax, reloc.MSVCRT.dll_strncpy
push eax
call fcn.00531d80
movzx ecx, word [esi]
push eax
push ecx
lea edx, reloc.MSVCRT.dll_strncpy
push edx
mov eax, edx
push 0x5c0680
push eax
call dword [fcn.005c02cc]
add esp, 0x18
inc edi
add esi, 2
cmp edi, 8
jle 0x40dc34
mov esi, dword [ebp - reloc.MSVCRT.dll_strncpy]
test esi, esi
je 0x40dca3
mov eax, ebx
lea edx, [eax + 1]
jmp 0x40dc80
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40dc80
lea ecx, reloc.MSVCRT.dll_strncpy
push ecx
sub eax, edx
push esi
lea edx, [ebx + eax]
push 0x5c0678
push edx
call dword [fcn.005c02cc]
add esp, 0x10
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov esi, dword [ebp - reloc.MSVCRT.dll_strncpy]
lea esi, [esi + eax]
sar esi, 1
jmp 0x40dd0a
movzx eax, word [edi + 0x4a3]
movzx edx, word [edi + 0x497]
add eax, edx
sub eax, esi
jns 0x40dccc
xor eax, eax
mov edx, dword [ebp + 0x18]
push 0
lea ecx, reloc.MSVCRT.dll_strncpy
push ecx
push eax
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
push edx
push eax
call fcn.00535190
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov esi, dword [ebp - reloc.MSVCRT.dll_strncpy]
add esp, 0x14
test dword [eax + 0xd8], 0x20000000
je 0x40dd10
movzx ecx, word [edi + 0xf12]
add esi, ecx
mov dword [ebp - reloc.MSVCRT.dll_strncpy], esi
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
cmp byte [eax + 0xb6], 0
je 0x40dde7
cmp dword [eax + 0xb8], 0
je 0x40dde7
cmp byte [ebx], 0
je 0x40dd4a
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40dd38
mov dx, word [0x5c05a8]
mov word [edi], dx
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
lea eax, reloc.MSVCRT.dll_strncpy
push eax
mov eax, 0x10624dd3
mul dword [ecx + 0xb8]
shr edx, 6
push 0x5e75
push edx
call fcn.004a3130
add esp, 0xc
lea eax, [ebx - 1]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40dd76
mov dx, word [0x5c05ec]
mov word [eax], dx
mov cl, byte [0x5c05ee]
mov byte [eax + 2], cl
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40dd96
sub eax, edx
lea edx, reloc.MSVCRT.dll_strncpy
push edx
push 0x5395
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
lea eax, [ebx + edi]
push eax
call dword [fcn.005c02cc]
add esp, 0xc
lea eax, [ebx - 1]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40ddc6
mov cx, word [0x5c0674]
mov esi, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov word [eax], cx
mov dl, byte [0x5c0676]
mov byte [eax + 2], dl
cmp dword [ebp - reloc.MSVCRT.dll_strncpy], 0x1c1
jne 0x40de54
cmp esi, 0x64
jle 0x40de03
mov esi, 0x64
mov dword [ebp - reloc.MSVCRT.dll_strncpy], esi
cmp byte [ebx], 0
je 0x40de21
lea edi, [ebx - 1]
jmp 0x40de10
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40de10
mov ax, word [0x5c05a8]
mov word [edi], ax
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40de26
sub eax, edx
push esi
push 0x5df7
mov edi, eax
call fcn.00531d80
add esp, 4
push eax
lea ecx, [ebx + edi]
push 0x5c0668
push ecx
call dword [fcn.005c02cc]
add esp, 0x10
jmp 0x40de71
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
push edx
push eax
push esi
push 2
add eax, 0xd8
push eax
push ebx
call fcn.00408780
add esp, 0x18
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
cmp dword [eax + 0x7e], 0
je 0x40dfba
cmp byte [ebx], 0
je 0x40dea2
lea edi, [ebx - 1]
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40de90
mov cx, word [0x5c05a8]
mov word [edi], cx
lea eax, [ebx - 1]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40dea5
mov dx, word [0x5c05f0]
mov word [eax], dx
mov cl, byte [0x5c05f2]
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov byte [eax + 2], cl
mov eax, dword [edx + 0x7e]
cdq
mov ecx, 0x64
idiv ecx
mov ecx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov esi, eax
mov eax, 0x66666667
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, 0x4e
je 0x40df88
cmp ecx, 0x1bf
je 0x40df88
cmp ecx, 0x298
jne 0x40df63
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
mov eax, dword [edx + 0x7e]
imul eax, dword [ebp + 0x18]
cdq
mov ecx, 0x64
idiv ecx
mov esi, eax
mov eax, 0x66666667
imul edx
sar edx, 2
mov edi, edx
shr edi, 0x1f
mov eax, ebx
add edi, edx
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40df34
push edi
sub eax, ecx
push esi
push 0x4e41
mov dword [ebp - reloc.MSVCRT.dll_strncpy], eax
call fcn.00531d80
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
add esp, 4
push eax
push 0x5c065c
add edx, ebx
push edx
jmp 0x40dfb1
mov edi, ebx
lea edx, [edi + 1]
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x40df68
push eax
push esi
push 0x4e41
sub edi, edx
call fcn.00531d80
add esp, 4
push eax
push 0x5c065c
jmp 0x40dfae
mov edi, ebx
lea edx, [edi + 1]
lea ecx, [ecx]
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x40df90
push eax
push esi
push 0x4e41
sub edi, edx
call fcn.00531d80
add esp, 4
push eax
push 0x5c0650
add edi, ebx
push edi
call dword [fcn.005c02cc]
add esp, 0x14
mov eax, dword [ebp - reloc.MSVCRT.dll_strncpy]
movzx edx, word [eax + 0xa4]
test edx, edx
je 0x40e02d
cmp byte [ebx], 0
je 0x40dfe5
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40dfd3
mov cx, word [0x5c05a8]
mov word [edi], cx
lea eax, [ebx - 1]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40dfe8
mov cx, word [0x5c05f0]
mov word [eax], cx
mov cl, byte [0x5c05f2]
mov byte [eax + 2], cl
mov eax, ebx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e008
push edx
sub eax, esi
push 0x5f55
lea esi, [ebx + eax]
call fcn.00531d80
add esp, 4
push eax
push esi
call dword [fcn.005c02cc]
add esp, 0xc
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
movzx edx, word [edx + 0xa6]
test edx, edx
je 0x40e0a5
cmp byte [ebx], 0
je 0x40e057
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40e046
mov ax, word [0x5c05a8]
mov word [edi], ax
lea eax, [ebx - 1]
lea ebx, [ebx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40e060
mov cx, word [0x5c05f0]
mov word [eax], cx
mov cl, byte [0x5c05f2]
mov byte [eax + 2], cl
mov eax, ebx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e080
push edx
sub eax, esi
push 0x5f56
lea esi, [ebx + eax]
call fcn.00531d80
add esp, 4
push eax
push esi
call dword [fcn.005c02cc]
add esp, 0xc
mov edx, dword [ebp - reloc.MSVCRT.dll_strncpy]
movzx edx, word [edx + 0xa8]
test edx, edx
je case.0x40be80.43
cmp byte [ebx], 0
je 0x40e0d1
lea edi, [ebx - 1]
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40e0c0
mov ax, word [0x5c05a8]
mov word [edi], ax
lea eax, [ebx - 1]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x40e0d4
mov cx, word [0x5c05f0]
mov word [eax], cx
mov cl, byte [0x5c05f2]
mov byte [eax + 2], cl
mov eax, ebx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e0f4
push edx
sub eax, esi
push 0x5f5a
lea esi, [ebx + eax]
call fcn.00531d80
add esp, 4
push eax
push esi
call dword [fcn.005c02cc]
add esp, 0xc
jmp case.0x40be80.43
mov byte [0x6bb3e0], 0
mov dword [0x6bb424], edi
test byte [ebp + 0x20], 1
jne 0x40e143
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push edx
push eax
push ecx
push ebx
call fcn.0040a670
add esp, 0x10
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0059ea5e
mov esp, ebp
pop ebp
ret