Function at 0x18002c580
Capabilities:
Download url
Receive data

Disassembly:
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0x3a8]
sub rsp, 0x4a8
mov rax, qword [0x1800a8088]
xor rax, rsp
mov qword [rbp + 0x390], rax
mov eax, dword [0x1800aa930]
xor r11d, r11d
mov qword [rbp - 0x78], rdx
mov r10, rdx
mov dword [rbp - 0x80], ecx
mov esi, ecx
test al, 1
jne 0x18002c5ef
or eax, 1
mov qword [0x1800aa970], r11
lea rcx, [0x180084df0]
mov dword [0x1800aa930], eax
mov qword [0x1800aa978], r11
mov qword [0x1800aa980], r11
call fcn.180061f74
mov r10, qword [rbp - 0x78]
xor r11d, r11d
mov r8, qword [rsp + 0x50]
lea edi, [rsi - 0xb]
mov qword [rsp + 0x4d0], r12
mov ebx, esi
mov qword [rsp + 0x4e0], r13
lea rcx, [0x180000000]
mov qword [rsp + 0x4e8], r14
mov qword [rsp + 0x4a0], r15
mov dword [rsp + 0x78], ebx
mov dword [rsp + 0x4c], edi
mov qword [rsp + 0x68], r8
cmp esi, edi
jbe 0x18002cc02
mov r9, qword [rsp + 0x50]
lea r15d, [rsi - 0xa1]
movzx edi, byte [rsp + 0x30]
mov eax, dword [rsp + 0x4c]
mov qword [rsp + 0x50], r9
mov r9, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x50]
mov r13, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x50]
mov dword [rsp + 0x38], r15d
mov ecx, dword [rsp + 0x38]
mov r12d, dword [rsp + 0x38]
mov r14d, dword [rsp + 0x38]
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x40], rdx
mov dword [rsp + 0x48], ecx
jmp 0x18002c694
mov r10, qword [rbp - 0x78]
cmp r15d, 0x24
ja case.default.0x18002c6b8
lea rdx, [0x180000000]
movzx eax, byte [rdx + r15 + 0x2d2b4]
mov ecx, dword [rdx + rax*4 + 0x2d284]
add rcx, rdx
jmp rcx
lea rdx, [0x18009af60]
lea rcx, [rbp + 0x16c]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x18002cbbb
movzx eax, word [0x180099c98]
mov word [rbp + 0x158], ax
movzx eax, byte [0x180099c9a]
mov byte [rbp + 0x15a], al
jmp case.0x18002c6b8.4
mov rax, qword [0x1800aa978]
cmp qword [0x1800aa970], rax
jne 0x18002c719
xor r9d, r9d
lea r8, [0x1800aa970]
xor edx, edx
mov ecx, 0x118
call fcn.180019090
mov rbx, qword [rbp - 0x78]
mov r8d, 0xbb
xor ecx, ecx
lea rdx, [rbx + 0x68]
call fcn.18001dec0
xor r9d, r9d
lea r8, [rbx + 0x68]
mov edx, VarDecMul
lea rcx, [0x1800aa970]
call fcn.1800059f0
mov ebx, dword [rsp + 0x78]
mov byte [rsp + 0x58], al
jmp 0x18002cbbb
lea rbx, [0x180007f20]
mov ecx, 0x43
lea r8, [rbp - 0x70]
mov qword [rsp + 0x50], rbx
lea rdx, [rsp + 0x50]
call fcn.1800411b0
mov qword [rsp + 0x68], rax
lea r9, [rbp - 0x70]
lea rax, [0x18003a5a0]
mov byte [rsp + 0x30], 0
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x30]
lea rax, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x167
mov qword [rsp + 0x20], rax
call fcn.180047ed0
lea r8, [rbp - 0x70]
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x70]
mov qword [rsp + 0x70], rbx
mov ecx, 0x43
call fcn.1800411b0
mov qword [rsp + 0x70], rax
lea rdx, [rsp + 0x38]
mov rax, qword [rsp + 0x40]
lea rcx, [0x180098b88]
mov r8d, 0xb7
mov qword [rsp + 0x38], rax
call fcn.180053e10
mov ebx, eax
lea rdx, [rsp + 0x38]
mov rax, qword [rsp + 0x68]
lea rcx, str.ogus
mov r8d, 0xb7
mov qword [rsp + 0x38], rax
call fcn.180053e10
xor r11d, r11d
cmp eax, 1
mov ecx, r11d
mov eax, r11d
setne cl
cmp ebx, 1
mov ebx, dword [rsp + 0x78]
setne al
add eax, dword [rsp + 0x48]
add ecx, eax
mov dword [rsp + 0x48], ecx
jmp 0x18002cbbe
mov ebx, 0x10a
nop dword [rax + rax]
cmp ebx, 0x10a
je 0x18002c865
cmp ebx, 0x9178
je 0x18002c85e
cmp ebx, 0x121e6
je case.0x18002cc74.4
jmp 0x18002c892
mov byte [rsp + 0x58], 1
jmp 0x18002c892
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea r8, [rbp + 0x180]
mov qword [rsp + 0x28], r11
mov r9d, r12d
xor edx, edx
mov qword [0x1800aa758], rax
mov rcx, r13
mov dword [rsp + 0x20], r11d
call qword [sym.imp.urlmon.dll_URLDownloadToCacheFileW]
add ebx, 0x906e
mov r11d, 0
cmp ebx, 0x1b14a
jbe 0x18002c840
mov ebx, dword [rsp + 0x78]
xor eax, eax
mov byte [rsp + 0x30], 0x6f
lea rcx, [0x18003a5a0]
mov dword [rbp - 0x70], eax
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x78]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x78], rcx
lea r8, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 0x70]
mov ecx, 0xb8
call fcn.180045cb0
xor r11d, r11d
test eax, eax
mov ecx, r11d
setns cl
add dword [rsp + 0x48], ecx
jmp 0x18002cbbe
mov ecx, 2
mov dword [rsp + 0x48], r11d
call fcn.180066670
mov rcx, rax
lea r8, [0x180096248]
xor r9d, r9d
lea rdx, str.DEBUG__s:_d:_TEST:_bgets_breads_test_n
call fcn.1800010d0
lea rax, [0x1800a8b90]
mov qword [rsp + 0x28], 0
lea r9, [rbp - 0x70]
mov qword [rsp + 0x40], rax
lea r8, [rsp + 0x40]
mov dword [rsp + 0x20], reloc.OLEAUT32.dll_DispInvoke
xor edx, edx
xor ecx, ecx
call fcn.18003e280
lea rax, [0x18003a5a0]
mov byte [rsp + 0x30], 0x62
mov qword [rsp + 0x40], rax
lea r9, [rbp - 0x70]
lea rax, [rsp + 0x40]
xor r8d, r8d
mov edx, 0x167
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x30]
call fcn.180047ed0
mov r9, qword [rsp + 0x70]
mov rdx, rax
mov qword [rsp + 0x40], rax
xor r11d, r11d
mov eax, dword [rsp + 0x4c]
jmp 0x18002cbcc
lea rdx, str.AStar
lea rcx, [rbp + 0x15a]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
mov r8d, 3
lea rdx, [0x18009af98]
lea rcx, [rbp + 0x158]
call fcn.18006c780
mov eax, dword [0x180098434]
mov dword [rbp + 0x168], eax
movzx eax, word [0x180098438]
mov word [rbp + 0x16c], ax
jmp 0x18002cbbb
xor r9d, r9d
mov qword [rsp + 0x20], r11
xor edx, edx
mov r8d, 0xdb
mov rcx, r10
call fcn.180004350
test al, al
je 0x18002cf84
mov rcx, qword [rbp - 0x78]
xor r9d, r9d
xor r8d, r8d
xor r13d, r13d
mov rax, qword [rcx + 0x20]
mov rdx, qword [rcx + 0x28]
xor ecx, ecx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x42
call fcn.180042390
mov qword [0x1800aa740], rax
test rax, rax
jne 0x18002cb04
mov r15d, 0x83
nop word [rax + rax]
mov eax, r15d
sub eax, 0x83
je 0x18002cae0
sub eax, 1
je 0x18002ca7a
sub eax, 1
je 0x18002ca73
cmp eax, 1
je case.0x18002cc74.4
jmp 0x18002caeb
mov byte [rsp + 0x58], r13b
jmp 0x18002caeb
xor ecx, ecx
movzx eax, dil
cmp rsi, 0xf
cmovbe ecx, eax
movzx edi, cl
test cl, cl
je 0x18002caeb
mov ebx, 0x75
mov eax, ebx
sub eax, 0x75
je 0x18002cac1
sub eax, 1
je 0x18002cab7
cmp eax, 1
jne 0x18002cad7
test dil, dil
je 0x18002cad7
mov edx, dword [rsp + 0x60]
mov ecx, esi
call qword [sym.imp.WINMM.dll_joySetThreshold]
jmp 0x18002cad7
test r14d, r14d
je 0x18002cad7
xor dil, dil
jmp 0x18002cad7
xor esi, esi
lea rdx, [rsp + 0x60]
xor ecx, ecx
mov dword [rsp + 0x60], esi
call qword [sym.imp.WINMM.dll_joyGetThreshold]
mov r14d, eax
inc ebx
cmp ebx, 0x78
jb 0x18002ca93
jmp 0x18002caeb
mov dil, 1
call qword [sym.imp.WINMM.dll_joyGetNumDevs]
mov esi, eax
inc r15d
cmp r15d, 0x87
jb 0x18002ca50
mov r15d, dword [rsp + 0x38]
mov ebx, dword [rsp + 0x78]
mov rcx, qword [rbp - 0x78]
xor r9d, r9d
xor r8d, r8d
mov rax, qword [rcx + 0x20]
mov rdx, qword [rcx + 0x30]
xor ecx, ecx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x42
call fcn.180042390
mov qword [0x1800aa748], rax
jmp 0x18002cbbb
mov r8d, 0xb7
mov qword [rsp + 0x38], r9
lea rdx, [rsp + 0x38]
lea rcx, [0x180096248]
call fcn.180053e10
xor r11d, r11d
cmp eax, 1
mov ecx, r11d
mov eax, r11d
setne cl
cmp qword [rsp + 0x50], rax
setne al
add eax, dword [rsp + 0x48]
add eax, ecx
mov dword [rsp + 0x48], eax
jmp 0x18002cbbe
cmp qword [0x1800aa748], 0
je 0x18002cf84
mov rax, qword [r10 + 0x20]
xor r9d, r9d
mov rdx, qword [r10 + 0x38]
xor r8d, r8d
mov qword [rsp + 0x28], rax
xor ecx, ecx
mov dword [rsp + 0x20], 0x42
mov r12d, 0x104
call fcn.180042390
mov qword [0x1800aa750], rax
test rax, rax
je 0x18002cf84
xor r11d, r11d
mov r9, qword [rsp + 0x70]
mov eax, dword [rsp + 0x4c]
mov rdx, qword [rsp + 0x40]
dec ebx
dec r15d
mov dword [rsp + 0x78], ebx
mov dword [rsp + 0x38], r15d
cmp ebx, eax
ja 0x18002c690
mov esi, dword [rbp - 0x80]
lea rcx, [0x180000000]
mov r14d, dword [rsp + 0x48]
mov r8, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x70]
jmp 0x18002cc2a
mov rbx, qword [rsp + 0x50]
mov r14d, dword [rsp + 0x38]
mov qword [rsp + 0x50], rbx
mov rdi, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x40], rdx
mov dword [rsp + 0x48], r14d
lea r13d, [rsi + 0xb]
cmp esi, r13d
jae case.0x18002cc74.4
movzx r15d, byte [rsp + 0x30]
lea r12d, [rsi - 0xa4]
movabs r9, 0x6c006c0064
nop
cmp r12d, 0x25
ja case.0x18002cc74.9
movzx eax, byte [rcx + r12 + 0x2d304]
mov ecx, dword [rcx + rax*4 + 0x2d2dc]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov qword [rsp + 0x38], r8
lea r9, [rsp + 0x38]
xor r8d, r8d
mov qword [rsp + 0x20], r11
xor edx, edx
mov ecx, 0x93
call fcn.180035cc0
mov qword [rsp + 0x38], rbx
lea r9, [rsp + 0x38]
xor ebx, ebx
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rbx
mov ecx, 0x93
call fcn.180035cc0
lea r9, [rsp + 0x38]
mov qword [rsp + 0x38], rdi
xor r8d, r8d
mov qword [rsp + 0x20], rbx
xor edx, edx
mov ecx, 0x93
call fcn.180035cc0
test r14d, r14d
je 0x18002ccfd
lea ecx, [rbx + 2]
call fcn.180066670
mov rcx, rax
mov dword [rsp + 0x20], r14d
xor r9d, r9d
lea r8, [0x180096248]
lea rdx, str._Z19convert_short16_rtpDv16_c
call fcn.1800010d0
mov dword [rsp + 0x58], r14d
jmp 0x18002d244
mov qword [rsp + 0x38], rdx
lea rcx, [0x18009afc0]
lea rdx, [rsp + 0x38]
mov r8d, 0xb7
call fcn.180053e10
mov edi, eax
lea rdx, [rsp + 0x38]
mov rax, qword [rsp + 0x68]
lea rcx, str.ogusgus
mov r8d, 0xb7
mov qword [rsp + 0x38], rax
call fcn.180053e10
mov ebx, eax
mov byte [rsp + 0x30], 0x6f
lea rax, [0x18003a5a0]
mov ecx, 0xb8
mov qword [rsp + 0x60], rax
lea r9, [rsp + 0x60]
mov rax, qword [rsp + 0x40]
lea r8, [rsp + 0x30]
mov qword [rsp + 0x38], rax
lea rdx, [rbp - 0x70]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
call fcn.180045cb0
xor r11d, r11d
test eax, eax
mov ecx, r11d
mov eax, r11d
sets cl
cmp ebx, 1
setne al
add ecx, eax
mov eax, r11d
cmp edi, 1
setne al
add r14d, eax
add r14d, ecx
mov dword [rsp + 0x48], r14d
jmp 0x18002d247
mov r8d, 0xa
lea rdx, [rbp + 0x172]
lea ecx, [r8 - 8]
call fcn.180066b80
mov dword [rbp + 0x174], 0x2e
jmp 0x18002d244
mov ecx, 0x202
lea rdx, [rbp - 0x60]
call qword [rsp + 0x78]
test eax, eax
je 0x18002cf63
mov ebx, 0x38
cmp ebx, 0x21e
ja 0x18002ce9c
je 0x18002ce80
cmp ebx, 0x38
je 0x18002ce52
cmp ebx, 0xda
je 0x18002ce35
cmp ebx, 0x17c
jne 0x18002cf4e
mov eax, 0x67
mov dword [rbp + 0x149], 0x6e6970
mov word [rbp + 0x14c], ax
jmp 0x18002cf4e
mov eax, 0x61
mov word [rbp + 0x147], ax
mov eax, 0x70
mov word [rbp + 0x148], ax
jmp 0x18002cf4e
mov eax, VarR8FromI2
mov ecx, 0x65
mov word [rbp + 0x140], ax
mov word [rbp + 0x145], cx
mov dword [rbp + 0x141], 0x6c694679
mov word [rbp + 0x146], ax
jmp 0x18002cf4e
mov dword [rbp + 0x14d], 0x6a624f
mov r15b, 1
mov dword [rbp + reloc.OLEAUT32.dll_VarI8FromCy], 0x746365
jmp 0x18002cf4e
cmp ebx, 0x2c0
je 0x18002cec7
cmp ebx, 0x362
je 0x18002cebd
cmp ebx, 0x404
je case.0x18002cc74.4
jmp 0x18002cf4e
mov byte [rsp + 0x58], 0
jmp 0x18002cf4e
xor r9d, r9d
lea rax, [rbp + 0x140]
xor edx, edx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], reloc.OLEAUT32.dll_VarUI2FromUI1
lea r8d, [r9 + 4]
lea rcx, [rdx - 1]
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov rdi, rax
test rax, rax
jne 0x18002cefb
xor r15b, r15b
jmp 0x18002cf4e
test r15b, r15b
je 0x18002cf4e
xor r9d, r9d
mov qword [rsp + 0x20], reloc.OLEAUT32.dll_VarUI2FromUI1
xor r8d, r8d
mov edx, 0xf001f
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rsi, rax
test rax, rax
jne 0x18002cf33
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor r15b, r15b
jmp 0x18002cf4e
mov rcx, rsi
call qword [sym.imp.dbghelp.dll_ImageNtHeader]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add ebx, 0xa2
cmp ebx, 0x4a6
jb 0x18002cdf3
mov esi, dword [rbp - 0x80]
mov rcx, qword [rbp - 0x78]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 0x8e
xor edx, edx
call fcn.180017150
test al, al
jne 0x18002d244
mov byte [rsp + 0x58], 0
mov eax, dword [rsp + 0x58]
mov r15, qword [rsp + 0x4a0]
mov r14, qword [rsp + 0x4e8]
mov r13, qword [rsp + 0x4e0]
mov r12, qword [rsp + 0x4d0]
mov rcx, qword [rbp + 0x390]
xor rcx, rsp
call fcn.1800618d0
add rsp, 0x4a8
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rax, [rsp + 0x38]
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x28], rax
lea rdi, [0x180007f20]
xor r9d, r9d
mov dword [rsp + 0x20], VarUI2FromUI1
lea r8, [rbp - 0x70]
mov qword [rsp + 0x38], rdi
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.180027fb0
mov r14, rax
mov byte [rsp + 0x30], 0x6f
lea rax, [0x1800a8b90]
mov ecx, 0xb8
mov qword [rsp + 0x38], rax
lea rbx, [0x18003a5a0]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x60], rbx
lea r9, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x30]
lea rdx, [rbp - 0x70]
call fcn.180045cb0
mov esi, eax
mov qword [rsp + 0x38], rdi
lea rax, [0x1800a8b90]
xor r9d, r9d
mov qword [rsp + 0x60], rax
lea r8, [rbp - 0x70]
lea rax, [rsp + 0x38]
xor edx, edx
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x60]
mov dword [rsp + 0x20], VarUI2FromUI1
call fcn.180027fb0
mov rdi, rax
mov byte [rsp + 0x30], 0x6f
mov rax, qword [rsp + 0x40]
lea r9, [rsp + 0x60]
mov qword [rsp + 0x38], rax
lea r8, [rsp + 0x30]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x60], rbx
lea rdx, [rbp - 0x70]
mov qword [rsp + 0x20], rax
mov ecx, 0xb8
call fcn.180045cb0
mov ebx, eax
lea r8, [rbp - 0x70]
lea rax, [0x180007f20]
xor r9d, r9d
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x60]
mov rax, qword [rsp + 0x68]
xor edx, edx
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], VarUI2FromUI1
call fcn.180027fb0
xor r11d, r11d
test eax, eax
mov ecx, r11d
mov eax, r11d
sets cl
test ebx, ebx
sets al
add ecx, eax
mov eax, r11d
test edi, edi
setns al
add ecx, eax
mov eax, r11d
test esi, esi
setns al
add ecx, eax
mov eax, r11d
test r14d, r14d
setns al
add eax, dword [rsp + 0x48]
mov esi, dword [rbp - 0x80]
lea r14d, [rax + rcx]
mov dword [rsp + 0x48], r14d
jmp 0x18002d247
xor r9d, r9d
mov qword [rsp + 0x20], r11
xor r8d, r8d
mov edx, 0x12b
xor ecx, ecx
call fcn.180047ed0
mov byte [rsp + 0x58], al
jmp 0x18002d244
lea rax, [0x180007f20]
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x38], rax
lea r8, [rbp - 0x70]
lea rax, [rsp + 0x38]
xor r9d, r9d
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x60]
xor edx, edx
mov dword [rsp + 0x20], VarUI2FromUI1
call fcn.180027fb0
mov rdi, rax
lea rdx, [rsp + 0x38]
mov rax, qword [rsp + 0x40]
lea rcx, [0x18009afc0]
mov r8d, 0xb7
mov qword [rsp + 0x38], rax
call fcn.180053e10
mov ebx, eax
lea rdx, [rsp + 0x38]
mov rax, qword [rsp + 0x68]
lea rcx, str.ogusgus
mov r8d, 0xb7
mov qword [rsp + 0x38], rax
call fcn.180053e10
xor ecx, ecx
mov qword [rsp + 0x20], 0
cmp eax, 1
lea r9, [rsp + 0x38]
setne cl
xor eax, eax
cmp ebx, 1
setne al
add ecx, eax
xor eax, eax
test edi, edi
sets al
xor r8d, r8d
add r14d, eax
xor edx, edx
mov rax, qword [rsp + 0x40]
add r14d, ecx
mov ecx, 0x93
mov dword [rsp + 0x48], r14d
mov qword [rsp + 0x38], rax
call fcn.180035cc0
jmp 0x18002d244
mov r8d, 0x12b
mov qword [rbp + 0x176], r9
lea rdx, [rbp + 0x168]
lea rcx, [rbp + 0x158]
call fcn.18001c8f0
mov qword [rsp + 0x78], rax
xor r11d, r11d
mov r8, qword [rsp + 0x68]
movabs r9, 0x6c006c0064
mov rdx, qword [rsp + 0x40]
inc esi
inc r12d
mov dword [rbp - 0x80], esi
cmp esi, r13d
jae case.0x18002cc74.4
mov rbx, qword [rsp + 0x50]
lea rcx, [0x180000000]
mov rdi, qword [rsp + 0x70]
jmp 0x18002cc50