Function at 0x419310
Capabilities:
Get geographical location

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rsi, rdx
mov edi, ecx
mov r8, qword [rsi]
xor r12d, r12d
mov edx, 0x1d
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
mov ebx, eax
inc ebx
movsxd rcx, ebx
call fcn.0040ccb0
mov qword [rsi], rax
test rsi, rsi
je 0x41936c
mov ecx, edi
mov edx, 0x1d
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
test eax, eax
setne al
movzx r12d, al
jmp 0x419376
mov ecx, 0xe
call sub.KERNEL32_SetLastError
mov r8, qword [rsi + 8]
mov ecx, edi
mov edx, 0x1e
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 8], rax
mov ecx, edi
mov edx, 0x1e
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r15d, eax
mov r8, qword [rsi + 0x10]
mov ecx, edi
mov edx, 0x1003
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbp, eax
mov rcx, rbp
call fcn.0040ccb0
mov qword [rsi + 0x10], rax
mov ecx, edi
mov edx, 0x1003
mov r8, rax
mov r9d, ebp
call sub.KERNEL32_GetLocaleInfoA
mov ebp, eax
mov r8, qword [rsi + 0x18]
mov ecx, edi
mov edx, 0x1f
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x18], rax
mov ecx, edi
mov edx, 0x1f
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov dword [rsp + 0x38], eax
test r15d, r15d
setne al
movzx eax, al
and eax, r12d
test ebp, ebp
setne cl
movzx r14d, cl
mov r8, qword [rsi + 0x20]
and r14d, eax
mov ecx, edi
mov edx, 0x20
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x20], rax
mov ecx, edi
mov edx, 0x20
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r12d, eax
mov r8, qword [rsi + 0x28]
mov ecx, edi
mov edx, 0x28
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x28], rax
mov ecx, edi
mov edx, 0x28
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r13d, eax
mov r8, qword [rsi + 0x30]
mov ecx, edi
mov edx, 0x29
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x30], rax
mov ecx, edi
mov edx, 0x29
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov ebx, eax
mov r8, qword [rsi + 0x46]
mov ecx, edi
mov edx, 0x2a
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbp, eax
mov rcx, rbp
call fcn.0040ccb0
mov qword [rsi + 0x46], rax
mov ecx, edi
mov edx, 0x2a
mov r8, rax
mov r9d, ebp
call sub.KERNEL32_GetLocaleInfoA
mov r15d, eax
cmp dword [rsp + 0x38], 0
setne al
movzx eax, al
and eax, r14d
test r12d, r12d
setne cl
movzx ecx, cl
and ecx, eax
test r13d, r13d
setne al
movzx eax, al
and eax, ecx
test ebx, ebx
setne cl
movzx r14d, cl
mov r8, qword [rsi + 0x4e]
and r14d, eax
mov ecx, edi
mov edx, 0x2b
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x4e], rax
mov ecx, edi
mov edx, 0x2b
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r12d, eax
mov r8, qword [rsi + 0x56]
mov ecx, edi
mov edx, 0x2c
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbp, eax
mov rcx, rbp
call fcn.0040ccb0
mov qword [rsi + 0x56], rax
mov ecx, edi
mov edx, 0x2c
mov r8, rax
mov r9d, ebp
call sub.KERNEL32_GetLocaleInfoA
mov ebp, eax
mov r8, qword [rsi + 0x5e]
mov ecx, edi
mov edx, 0x2d
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x5e], rax
mov ecx, edi
mov edx, 0x2d
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov dword [rsp + 0x38], eax
test r15d, r15d
setne al
movzx eax, al
and eax, r14d
test r12d, r12d
setne cl
movzx ecx, cl
and ecx, eax
test ebp, ebp
setne al
movzx r14d, al
mov r8, qword [rsi + 0x66]
and r14d, ecx
mov ecx, edi
mov edx, 0x2e
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x66], rax
mov ecx, edi
mov edx, 0x2e
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r12d, eax
mov r8, qword [rsi + 0x6e]
mov ecx, edi
mov edx, 0x2f
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x6e], rax
mov ecx, edi
mov edx, 0x2f
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r13d, eax
mov r8, qword [rsi + 0x76]
mov ecx, edi
mov edx, 0x30
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x76], rax
mov ecx, edi
mov edx, 0x30
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov ebx, eax
mov r8, qword [rsi + 0x7e]
mov ecx, edi
mov edx, 0x31
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbp, eax
mov rcx, rbp
call fcn.0040ccb0
mov qword [rsi + 0x7e], rax
mov ecx, edi
mov edx, 0x31
mov r8, rax
mov r9d, ebp
call sub.KERNEL32_GetLocaleInfoA
mov r15d, eax
cmp dword [rsp + 0x38], 0
setne al
movzx eax, al
and eax, r14d
test r12d, r12d
setne cl
movzx ecx, cl
and ecx, eax
test r13d, r13d
setne al
movzx eax, al
and eax, ecx
test ebx, ebx
setne cl
movzx r14d, cl
mov r8, qword [rsi + 0x86]
and r14d, eax
mov ecx, edi
mov edx, 0x32
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x86], rax
mov ecx, edi
mov edx, 0x32
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r12d, eax
mov r8, qword [rsi + 0x8e]
mov ecx, edi
mov edx, 0x33
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbp, eax
mov rcx, rbp
call fcn.0040ccb0
mov qword [rsi + 0x8e], rax
mov ecx, edi
mov edx, 0x33
mov r8, rax
mov r9d, ebp
call sub.KERNEL32_GetLocaleInfoA
mov ebp, eax
mov r8, qword [rsi + 0x96]
mov ecx, edi
mov edx, 0x34
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x96], rax
mov ecx, edi
mov edx, 0x34
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov dword [rsp + 0x38], eax
test r15d, r15d
setne al
movzx eax, al
and eax, r14d
test r12d, r12d
setne cl
movzx ecx, cl
and ecx, eax
test ebp, ebp
setne al
movzx r14d, al
mov r8, qword [rsi + 0x9e]
and r14d, ecx
mov ecx, edi
mov edx, 0x35
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x9e], rax
mov ecx, edi
mov edx, 0x35
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r12d, eax
mov r8, qword [rsi + 0xa6]
mov ecx, edi
mov edx, 0x36
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0xa6], rax
mov ecx, edi
mov edx, 0x36
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r13d, eax
mov r8, qword [rsi + 0xae]
mov ecx, edi
mov edx, 0x37
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0xae], rax
mov ecx, edi
mov edx, 0x37
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov ebx, eax
mov r8, qword [rsi + 0xb6]
mov ecx, edi
mov edx, 0x38
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbp, eax
mov rcx, rbp
call fcn.0040ccb0
mov qword [rsi + 0xb6], rax
mov ecx, edi
mov edx, 0x38
mov r8, rax
mov r9d, ebp
call sub.KERNEL32_GetLocaleInfoA
mov r15d, eax
cmp dword [rsp + 0x38], 0
setne al
movzx eax, al
and eax, r14d
test r12d, r12d
setne cl
movzx ecx, cl
and ecx, eax
test r13d, r13d
setne al
movzx eax, al
and eax, ecx
test ebx, ebx
setne cl
movzx r14d, cl
mov r8, qword [rsi + 0xbe]
and r14d, eax
mov ecx, edi
mov edx, 0x39
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0xbe], rax
mov ecx, edi
mov edx, 0x39
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r12d, eax
mov r8, qword [rsi + 0xc6]
mov ecx, edi
mov edx, 0x3a
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbp, eax
mov rcx, rbp
call fcn.0040ccb0
mov qword [rsi + 0xc6], rax
mov ecx, edi
mov edx, 0x3a
mov r8, rax
mov r9d, ebp
call sub.KERNEL32_GetLocaleInfoA
mov ebp, eax
mov r8, qword [rsi + 0xce]
mov ecx, edi
mov edx, 0x3b
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0xce], rax
mov ecx, edi
mov edx, 0x3b
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov dword [rsp + 0x38], eax
test r15d, r15d
setne al
movzx eax, al
and eax, r14d
test r12d, r12d
setne cl
movzx ecx, cl
and ecx, eax
test ebp, ebp
setne al
movzx r14d, al
mov r8, qword [rsi + 0xd6]
and r14d, ecx
mov ecx, edi
mov edx, 0x3c
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0xd6], rax
mov ecx, edi
mov edx, 0x3c
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r12d, eax
mov r8, qword [rsi + 0xde]
mov ecx, edi
mov edx, 0x3d
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0xde], rax
mov ecx, edi
mov edx, 0x3d
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r13d, eax
mov r8, qword [rsi + 0xe6]
mov ecx, edi
mov edx, 0x3e
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0xe6], rax
mov ecx, edi
mov edx, 0x3e
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov ebx, eax
mov r8, qword [rsi + 0xee]
mov ecx, edi
mov edx, 0x3f
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbp, eax
mov rcx, rbp
call fcn.0040ccb0
mov qword [rsi + 0xee], rax
mov ecx, edi
mov edx, 0x3f
mov r8, rax
mov r9d, ebp
call sub.KERNEL32_GetLocaleInfoA
mov r15d, eax
cmp dword [rsp + 0x38], 0
setne al
movzx eax, al
and eax, r14d
test r12d, r12d
setne cl
movzx ecx, cl
and ecx, eax
test r13d, r13d
setne al
movzx eax, al
and eax, ecx
test ebx, ebx
setne cl
movzx r14d, cl
mov r8, qword [rsi + 0xf6]
and r14d, eax
mov ecx, edi
mov edx, 0x40
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0xf6], rax
mov ecx, edi
mov edx, 0x40
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r12d, eax
mov r8, qword [rsi + 0xfe]
mov ecx, edi
mov edx, 0x41
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbp, eax
mov rcx, rbp
call fcn.0040ccb0
mov qword [rsi + 0xfe], rax
mov ecx, edi
mov edx, 0x41
mov r8, rax
mov r9d, ebp
call sub.KERNEL32_GetLocaleInfoA
mov ebp, eax
mov r8, qword [rsi + 0x106]
mov ecx, edi
mov edx, 0x42
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x106], rax
mov ecx, edi
mov edx, 0x42
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov dword [rsp + 0x38], eax
test r15d, r15d
setne al
movzx eax, al
and eax, r14d
test r12d, r12d
setne cl
movzx ecx, cl
and ecx, eax
test ebp, ebp
setne al
movzx r14d, al
mov r8, qword [rsi + 0x10e]
and r14d, ecx
mov ecx, edi
mov edx, 0x43
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x10e], rax
mov ecx, edi
mov edx, 0x43
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r12d, eax
mov r8, qword [rsi + 0x116]
mov ecx, edi
mov edx, 0x44
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x116], rax
mov ecx, edi
mov edx, 0x44
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r13d, eax
mov r8, qword [rsi + 0x11e]
mov ecx, edi
mov edx, 0x45
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x11e], rax
mov ecx, edi
mov edx, 0x45
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov ebx, eax
mov r8, qword [rsi + 0x126]
mov ecx, edi
mov edx, 0x46
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbp, eax
mov rcx, rbp
call fcn.0040ccb0
mov qword [rsi + 0x126], rax
mov ecx, edi
mov edx, 0x46
mov r8, rax
mov r9d, ebp
call sub.KERNEL32_GetLocaleInfoA
mov r15d, eax
cmp dword [rsp + 0x38], 0
setne al
movzx eax, al
and eax, r14d
test r12d, r12d
setne cl
movzx ecx, cl
and ecx, eax
test r13d, r13d
setne al
movzx eax, al
and eax, ecx
test ebx, ebx
setne cl
movzx r12d, cl
mov r8, qword [rsi + 0x12e]
and r12d, eax
mov ecx, edi
mov edx, 0x47
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x12e], rax
mov ecx, edi
mov edx, 0x47
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r14d, eax
mov r8, qword [rsi + 0x136]
mov ecx, edi
mov edx, 0x48
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbp, eax
mov rcx, rbp
call fcn.0040ccb0
mov qword [rsi + 0x136], rax
mov ecx, edi
mov edx, 0x48
mov r8, rax
mov r9d, ebp
call sub.KERNEL32_GetLocaleInfoA
mov ebp, eax
mov r8, qword [rsi + 0x13e]
mov ecx, edi
mov edx, 0x49
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x13e], rax
mov ecx, edi
mov edx, 0x49
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov dword [rsp + 0x38], eax
test r15d, r15d
setne al
movzx eax, al
and eax, r12d
test r14d, r14d
setne cl
movzx ecx, cl
and ecx, eax
test ebp, ebp
setne al
movzx r13d, al
mov r8, qword [rsi + 0x146]
and r13d, ecx
mov ecx, edi
mov edx, 0x4a
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x146], rax
mov ecx, edi
mov edx, 0x4a
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r14d, eax
mov r8, qword [rsi + 0x14e]
mov ecx, edi
mov edx, 0x4b
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x14e], rax
mov ecx, edi
mov edx, 0x4b
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov dword [rsp + 0x30], eax
mov r8, qword [rsi + 0x156]
mov ecx, edi
mov edx, 0x4c
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x156], rax
mov ecx, edi
mov edx, 0x4c
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov dword [rsp + 0x2c], eax
mov r8, qword [rsi + 0x15e]
mov ecx, edi
mov edx, 0x4d
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x15e], rax
mov ecx, edi
mov edx, 0x4d
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov dword [rsp + 0x28], eax
mov r8, qword [rsi + 0x166]
mov ecx, edi
mov edx, 0x4e
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbp, eax
mov rcx, rbp
call fcn.0040ccb0
mov qword [rsi + 0x166], rax
mov ecx, edi
mov edx, 0x4e
mov r8, rax
mov r9d, ebp
call sub.KERNEL32_GetLocaleInfoA
mov ebp, eax
mov r8, qword [rsi + 0x16e]
mov ecx, edi
mov edx, 0x4f
xor r9d, r9d
call sub.KERNEL32_GetLocaleInfoA
inc eax
movsxd rbx, eax
mov rcx, rbx
call fcn.0040ccb0
mov qword [rsi + 0x16e], rax
mov ecx, edi
mov edx, 0x4f
mov r8, rax
mov r9d, ebx
call sub.KERNEL32_GetLocaleInfoA
mov r12d, eax
lea r8, [rsi + 0x38]
cmp dword [rsp + 0x38], 0
setne al
movzx eax, al
and eax, r13d
test r14d, r14d
setne cl
movzx r15d, cl
and r15d, eax
cmp dword [rsp + 0x30], 0
setne al
movzx ebx, al
cmp dword [rsp + 0x2c], 0
setne al
movzx r14d, al
lea r13, [rsi + 0x3c]
mov ecx, edi
mov edx, 0x21
mov r9d, 2
call fcn.00418e40
lea r8, [rsi + 0x3a]
and ebx, r15d
lea rcx, [rsi + 0x44]
mov qword [rsp + 0x38], rcx
and ebx, r14d
cmp dword [rsp + 0x28], 0
setne cl
movzx edx, cl
lea rcx, [rsi + 0x42]
mov qword [rsp + 0x30], rcx
and edx, ebx
lea r15, [rsi + 0x40]
lea r14, [rsi + 0x3e]
test ebp, ebp
setne cl
movzx ecx, cl
and ecx, edx
and ecx, eax
test r12d, r12d
setne al
movzx ebx, al
and ebx, ecx
mov ecx, edi
mov edx, 0x22
mov r9d, 2
call fcn.00418e40
mov ebp, eax
mov ecx, edi
mov edx, 0x23
mov r8, r13
mov r9d, 2
call fcn.00418e40
and ebp, ebx
and ebp, eax
mov ecx, edi
mov edx, 0x24
mov r8, r14
mov r9d, 1
call fcn.00418e40
mov ebx, eax
and ebx, ebp
mov ecx, edi
mov edx, 0x25
mov r8, r15
mov r9d, 2
call fcn.00418e40
mov ebp, eax
and ebp, ebx
mov ecx, edi
mov edx, 0x26
mov r8, qword [rsp + 0x30]
mov r9d, 2
call fcn.00418e40
mov ebx, eax
and ebx, ebp
mov ecx, edi
mov edx, 0x27
mov r8, qword [rsp + 0x38]
mov r9d, 2
call fcn.00418e40
mov edi, eax
and edi, ebx
je 0x41a14f
mov rcx, qword [rsi + 0x10]
lea rbx, [rsp + 0x40]
mov rdx, rbx
mov r8d, 0x40
call fcn.00417280
mov rcx, qword [rsi + 0x10]
call fcn.0040ccc0
mov rcx, rbx
call fcn.00411140
mov qword [rsi + 0x10], rax
mov rcx, qword [rsi + 0x18]
mov rdx, rbx
mov r8d, 0x40
call fcn.00417280
mov rcx, qword [rsi + 0x18]
call fcn.0040ccc0
mov rcx, rbx
call fcn.00411140
mov qword [rsi + 0x18], rax
mov rcx, qword [rsi + 0x20]
mov rdx, rbx
mov r8d, 0x40
call fcn.00417280
mov rcx, qword [rsi + 0x20]
call fcn.0040ccc0
mov rcx, rbx
call fcn.00411140
mov qword [rsi + 0x20], rax
test edi, edi
setne al
movzx eax, al
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret