Function at 0x40a310
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [rsp + 0x68]
mov rcx, qword [rsp + 0x178]
cmp eax, dword [rcx + 0x18]
jae 0x40a43f
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x3e8]
mov edx, dword [rsp + 0x68]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x3d8], rax
mov rax, qword [rsp + 0x3d8]
mov ecx, dword [rsp + 0x1e0]
mov qword [rsp + 0x330], rax
mov dword [rsp + 0x24c], ecx
mov dword [rsp + 0x110], 0
mov rcx, qword [rsp + 0x330]
call fcn.004090c3
mov dword [rsp + 0x248], eax
mov dword [rsp + 0xa8], 0
mov eax, dword [rsp + 0xa8]
cmp eax, dword [rsp + 0x248]
jae 0x40a3ef
mov rax, qword [rsp + 0x330]
movsxd rcx, dword [rsp + 0xa8]
mov al, byte [rax + rcx]
mov byte [rsp + 0x5e], al
mov eax, dword [rsp + 0x24c]
mov ecx, dword [rsp + 0x110]
mov dword [rsp + 0x264], eax
mov dword [rsp + 0x260], ecx
mov dword [rsp + 0x124], 0
mov dword [rsp + 0x120], 0
mov eax, dword [rsp + 0x120]
cmp eax, dword [rsp + 0x264]
jae 0x40a3c4
mov eax, dword [rsp + 0x260]
add eax, dword [rsp + 0x124]
mov dword [rsp + 0x124], eax
mov eax, dword [rsp + 0x120]
add eax, 1
mov dword [rsp + 0x120], eax
jmp 0x40a38c
mov eax, dword [rsp + 0x124]
movzx ecx, byte [rsp + 0x5e]
add eax, ecx
mov dword [rsp + 0x110], eax
mov eax, dword [rsp + 0xa8]
add eax, 1
mov dword [rsp + 0xa8], eax
jmp 0x40a32f
mov eax, dword [rsp + 0x110]
cmp eax, dword [rsp + 0x1dc]
jne 0x40a42f
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x3e0]
mov rdx, qword [rsp + 0x3f0]
mov esi, dword [rsp + 0x68]
movzx edx, word [rdx + rsi*2]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x2d8], rax
jmp 0x40a44b
mov eax, dword [rsp + 0x68]
add eax, 1
mov dword [rsp + 0x68], eax
jmp fcn.0040a2b0
mov qword [rsp + 0x2d8], 0
mov rax, qword [rsp + 0x2d8]
mov qword [rsp + 0x360], rax
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x34]
mov rcx, qword [rsp + 0x38]
mov ecx, dword [rcx + 0x48]
mov rdx, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x38]
mov esi, dword [rsi + 0x54]
mov dword [rsp + 0x1d4], eax
mov dword [rsp + 0x1d0], ecx
mov qword [rsp + 0xb0], rdx
mov dword [rsp + 0x1cc], esi
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xb0]
movsxd rcx, dword [rcx + 0x3c]
add rax, rcx
mov qword [rsp + 0x3d0], rax
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x3d0]
mov edx, dword [rsp + 0x1cc]
mov ecx, dword [rcx + rdx*8 + 0x88]
ror dword [rax + 0x48000000], 1
add eax, ecx
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x170]
mov ecx, dword [rcx + 0x24]
add rax, rcx
mov qword [rsp + 0x3c8], rax
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x170]
mov ecx, dword [rcx + 0x20]
add rax, rcx
mov qword [rsp + 0x3c0], rax
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x170]
mov ecx, dword [rcx + 0x1c]
add rax, rcx
mov qword [rsp + 0x3b8], rax
mov dword [rsp + 0x64], 0
mov eax, dword [rsp + 0x64]
mov rcx, qword [rsp + 0x170]
cmp eax, dword [rcx + 0x18]
jae 0x40a6d1
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x3c0]
mov edx, dword [rsp + 0x64]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x3b0], rax
mov rax, qword [rsp + 0x3b0]
mov ecx, dword [rsp + 0x1d4]
mov qword [rsp + 0x338], rax
mov dword [rsp + 0x254], ecx
mov dword [rsp + 0x114], 0
mov rcx, qword [rsp + 0x338]
call fcn.004090c3
mov dword [rsp + 0x250], eax
mov dword [rsp + 0xac], 0
mov eax, dword [rsp + 0xac]
cmp eax, dword [rsp + 0x250]
jae 0x40a681
mov rax, qword [rsp + 0x338]
movsxd rcx, dword [rsp + 0xac]
mov al, byte [rax + rcx]
mov byte [rsp + 0x5f], al
mov eax, dword [rsp + 0x254]
mov ecx, dword [rsp + 0x114]
mov dword [rsp + 0x25c], eax
mov dword [rsp + 0x258], ecx
mov dword [rsp + 0x11c], 0
mov dword [rsp + 0x118], 0
mov eax, dword [rsp + 0x118]
cmp eax, dword [rsp + 0x25c]
jae 0x40a656
mov eax, dword [rsp + 0x258]
add eax, dword [rsp + 0x11c]
mov dword [rsp + 0x11c], eax
add dword [rax], eax
add byte [rbx + 0x1182484], cl
add byte [rax], al
add eax, 1
mov dword [rsp + 0x118], eax
jmp 0x40a61e
mov eax, dword [rsp + 0x11c]
movzx ecx, byte [rsp + 0x5f]
and al, 0x5f
add eax, ecx
mov dword [rsp + 0x114], eax
mov eax, dword [rsp + 0xac]
add eax, 1
mov dword [rsp + 0xac], eax
jmp 0x40a5c1
mov eax, dword [rsp + 0x114]
cmp eax, dword [rsp + 0x1d0]
jne 0x40a6c1
invalid
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x3b8]
mov rdx, qword [rsp + 0x3c8]
mov esi, dword [rsp + 0x64]
movzx edx, word [rdx + rsi*2]
mov ecx, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x2d0], rax
jmp 0x40a6dd
mov eax, dword [rsp + 0x64]
add eax, 1
mov dword [rsp + 0x64], eax
jmp 0x40a542
mov qword [rsp + 0x2d0], 0
mov rax, qword [rsp + 0x2d0]
mov qword [rsp + 0x2a0], rax
mov rax, qword [rsp + 0x48]
add rax, 0x1e
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x360]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
mov edx, dword [rdx + 0x64]
mov edx, edx
add rcx, rdx
call rax
mov qword [rsp + 0x1a8], rax
mov rax, qword [rsp + 0x48]
movsx eax, byte [rax]
mov rcx, qword [rsp + 0x48]
cdqe
add rcx, rax
mov qword [rsp + 0x48], rcx
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x38]
mov ecx, dword [rcx + 0x6c]
mov ecx, ecx
add rax, rcx
mov qword [rsp + 0x298], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x290], rax
mov rax, qword [rsp + 0x290]
mov eax, dword [rax + 4]
mov dword [rsp + 0x1b8], eax
mov rax, qword [rsp + 0x290]
mov eax, dword [rax + 8]
mov dword [rsp + 0x8c], eax
mov rax, qword [rsp + 0x298]
mov ecx, dword [rsp + 0x8c]
add rax, rcx
mov qword [rsp + 0x358], rax
mov rax, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x1a8]
movsxd rcx, dword [rcx + 0x3c]
add rax, rcx
mov qword [rsp + 0x350], rax
mov rax, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x350]
mov ecx, dword [rcx + 0x2c]
add rax, rcx
mov qword [rsp + 0x168], rax
mov dword [rsp + 0xf4], 0
mov rax, qword [rsp + 0x2a0]
mov rcx, qword [rsp + 0x38]
mov r8d, dword [rcx + 0x58]
mov edx, dword [rsp + 0x8c]
mov rcx, qword [rsp + 0x168]
lea r9, [rsp + 0xf4]
call rax
mov r8d, dword [rsp + 0x8c]
mov rdx, qword [rsp + 0x298]
mov rcx, qword [rsp + 0x168]
call fcn.00408fc3
mov rax, qword [rsp + 0x2a0]
mov r8d, dword [rsp + 0xf4]
mov edx, dword [rsp + 0x8c]
mov rcx, qword [rsp + 0x168]
lea r9, [rsp + 0xf4]
call rax
mov rax, qword [rsp + 0x168]
mov ecx, dword [rsp + 0x1b8]
add rax, rcx
mov qword [rsp + 0x348], rax
mov dword [rsp + 0x60], 0
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x5c]
movsxd rcx, dword [rsp + 0x60]
and al, 0x60
movsx eax, byte [rax + rcx]
cmp eax, 0
je 0x40a8bc
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x5c]
movsxd rcx, dword [rsp + 0x60]
movsx eax, byte [rax + rcx]
mov rcx, qword [rsp + 0x1b0]
movsxd rdx, dword [rsp + 0x60]
mov word [rcx + rdx*2], ax
mov eax, dword [rsp + 0x60]
add eax, 1
mov dword [rsp + 0x60], eax
jmp 0x40a875
mov rax, qword [rsp + 0x1b0]
movsxd rcx, dword [rsp + 0x60]
mov word [rax + rcx*2], 0
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x4d0], rax
mov rax, qword [rsp + 0x358]
mov qword [rsp + 0x4c8], rax
mov byte [rsp + 0x4d8], 1
mov rax, qword [rsp + 0x348]
mov qword [rsp + 0x340], rax
lea rcx, [rsp + 0x4c8]
call qword [rsp + 0x340]
mov byte [rsp + 0x47], 1
mov al, byte [rsp + 0x47]
and al, 1
movzx eax, al
add rsp, 0x4f0
pop rsi
ret