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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov r14, r8
mov rdi, rdx
mov rsi, rcx
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x98], rdx
mov eax, dword [rsi + 0x44]
mov dword [rsp + 0x64], eax
test eax, eax
je 0x140248494
mov rax, qword [rsi + 0x28]
mov qword [rsp + 0x30], rax
mov r12d, dword [rsi + 0x40]
mov qword [rsp + 0x70], rdi
mov r13, qword [rsi + 0x10]
mov eax, dword [rsi + 0x58]
mov qword [rsp + 0x38], rax
mov eax, dword [rsi + 0x48]
mov dword [rsp + 0x24], eax
mov eax, dword [rsi + 0x4c]
mov dword [rsp + 0x2c], eax
mov eax, dword [rsi + 0x50]
mov dword [rsp + 0x28], eax
mov eax, dword [rsi + 0x54]
mov dword [rsp + 0x48], eax
mov dl, byte [rsi + 1]
mov cl, byte [rsi + 2]
mov r8d, 0xffffffff
shl r8d, cl
movzx ebp, byte [rsi]
mov ebx, 0x100
mov ecx, edx
shl ebx, cl
mov eax, 0x100
mov dword [rsp + 0x7c], ebp
mov ecx, ebp
shr eax, cl
not r8d
sub ebx, eax
mov dword [rsp + 0x78], ebx
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0x40], rax
mov rax, qword [rsi + 0x20]
mov qword [rsp + 0x68], rax
mov r9, qword [rsi + 0x30]
mov r15d, dword [rsi + 0x38]
mov r10d, dword [rsi + 0x3c]
lea rax, [r13 - 0x1400]
mov qword [rsp + 0xa0], rax
lea rax, [r13 - 0xc00]
mov qword [rsp + 0xa8], rax
lea rax, [r13 + 0x100]
mov qword [rsp + 0x88], rax
lea rax, [r13 + 0x500]
mov qword [rsp + 0x90], rax
xor r11d, r11d
mov qword [rsp + 0x58], r13
mov dword [rsp + 0x50], r8d
mov ecx, r12d
and ecx, r8d
shl ecx, 4
mov rax, qword [rsp + 0x38]
lea esi, [rcx + rax]
cmp r15d, 0xffffff
ja 0x140247004
shl r15d, 8
shl r10d, 8
movzx eax, byte [r9]
inc r9
or eax, r10d
mov r10d, eax
mov edx, dword [r13 + rsi*4 - 0x400]
mov eax, r15d
shr eax, 0xb
imul eax, edx
mov ebp, r10d
sub ebp, eax
mov dword [rsp + 0x4c], r12d
jae 0x1402470e7
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add ecx, edx
mov dword [r13 + rsi*4 - 0x400], ecx
mov ecx, r12d
or ecx, dword [rsp + 0x64]
mov r14, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x68]
je 0x140247086
mov ecx, r12d
shl ecx, 8
mov rdx, qword [rsp + 0x30]
test rdx, rdx
cmove rdx, rdi
mov rsi, qword [rsp + 0x40]
movzx edx, byte [rdx + rsi - 1]
or edx, ecx
and edx, dword [rsp + 0x78]
mov ecx, dword [rsp + 0x7c]
shl edx, cl
lea ecx, [rdx + rdx*2]
mov rdx, qword [rsp + 0x90]
lea r14, [rdx + rcx*4]
mov rsi, qword [rsp + 0x38]
cmp esi, 6
ja 0x1402471f6
sub esi, 3
mov ecx, 0
cmovb esi, ecx
cmp eax, 0xffffff
ja 0x1402470ba
shl eax, 8
shl r10d, 8
movzx ecx, byte [r9]
inc r9
or ecx, r10d
mov r10d, ecx
mov ebx, dword [r14 + 4]
mov edx, eax
shr edx, 0xb
imul edx, ebx
mov edi, r10d
sub edi, edx
jae 0x14024741d
mov ebp, 0x800
sub ebp, ebx
shr ebp, 5
add ebp, ebx
mov ecx, 2
jmp 0x140247432
mov r12d, r11d
sub r15d, eax
mov eax, edx
shr eax, 5
sub edx, eax
mov dword [r13 + rsi*4 - 0x400], edx
mov r11, r14
cmp r15d, 0xffffff
ja 0x140247118
shl r15d, 8
shl ebp, 8
movzx eax, byte [r9]
inc r9
or ebp, eax
mov r8, qword [rsp + 0x38]
mov edi, r8d
mov r13, qword [rsp + 0x58]
mov eax, dword [r13 + rdi*4 + 0x40]
mov ebx, r15d
shr ebx, 0xb
imul ebx, eax
mov r10d, ebp
sub r10d, ebx
jae 0x140247285
mov edx, 0x800
sub edx, eax
shr edx, 5
add edx, eax
mov dword [r13 + rdi*4 + 0x40], edx
add r8d, 0xc
mov rdi, qword [rsp + 0xa8]
mov r15, r8
mov r8d, dword [rsp + 0x50]
mov r14, r11
mov r12d, dword [rsp + 0x4c]
mov edx, dword [rdi]
cmp ebx, 0xffffff
ja 0x140247185
shl ebx, 8
shl ebp, 8
movzx eax, byte [r9]
inc r9
or ebp, eax
mov r13, qword [rsp + 0x58]
mov eax, ebx
shr eax, 0xb
imul eax, edx
mov esi, ebp
sub esi, eax
mov qword [rsp + 0x38], r15
jae 0x140247389
mov ebx, 0x800
sub ebx, edx
shr ebx, 5
add ebx, edx
mov dword [rdi], ebx
cmp eax, 0xffffff
ja 0x1402471c5
shl eax, 8
shl ebp, 8
movzx edx, byte [r9]
inc r9
or ebp, edx
mov r10d, ecx
mov esi, dword [rdi + r10*4 + 4]
mov edx, eax
shr edx, 0xb
imul edx, esi
mov ecx, ebp
sub ecx, edx
jae 0x140247b09
mov ebx, 0x800
sub ebx, esi
shr ebx, 5
add ebx, esi
mov r11d, 2
jmp 0x140247b1e
mov ecx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x30]
sub rdx, rcx
mov ecx, 0
cmovb rcx, rdi
add rcx, rdx
mov rdx, qword [rsp + 0x40]
movzx r15d, byte [rdx + rcx]
cmp esi, 0xa
setb byte [rsp + 0x54]
lea esi, [r15 + r15]
and esi, 0x100
cmp eax, 0xffffff
ja 0x140247245
shl eax, 8
shl r10d, 8
movzx ecx, byte [r9]
inc r9
or ecx, r10d
mov r10d, ecx
mov ebp, dword [r14 + rsi*4 + 0x404]
mov edi, eax
shr edi, 0xb
imul edi, ebp
mov edx, r10d
sub edx, edi
jae 0x140247482
mov eax, 0x800
sub eax, ebp
shr eax, 5
add eax, ebp
mov dword [r14 + rsi*4 + 0x404], eax
xor esi, 0x100
mov r12d, 2
jmp 0x14024749e
sub r15d, ebx
mov edx, eax
shr edx, 5
sub eax, edx
mov dword [r13 + rdi*4 + 0x40], eax
cmp r15d, 0xffffff
ja 0x1402472b2
shl r15d, 8
shl r10d, 8
movzx eax, byte [r9]
inc r9
or eax, r10d
mov r10d, eax
mov r8d, dword [rsp + 0x50]
mov r14, r11
mov eax, dword [r13 + rdi*4 + 0x70]
mov ebx, r15d
shr ebx, 0xb
imul ebx, eax
mov ebp, r10d
sub ebp, ebx
jae 0x140247501
mov r11d, r12d
mov edx, 0x800
sub edx, eax
shr edx, 5
add edx, eax
mov dword [r13 + rdi*4 + 0x70], edx
cmp ebx, 0xffffff
ja 0x140247303
shl ebx, 8
shl r10d, 8
movzx eax, byte [r9]
inc r9
or eax, r10d
mov r10d, eax
mov r12d, dword [rsp + 0x4c]
mov eax, dword [r13 + rsi*4 - 0x1800]
mov r15d, ebx
shr r15d, 0xb
imul r15d, eax
mov ebp, r10d
sub ebp, r15d
jae 0x140247f96
mov ecx, 0x800
sub ecx, eax
shr ecx, 5
add ecx, eax
mov dword [r13 + rsi*4 - 0x1800], ecx
mov eax, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x30]
mov rcx, rdx
sub rcx, rax
mov eax, 0
cmovb rax, qword [rsp + 0x68]
add rax, rcx
mov rcx, qword [rsp + 0x40]
mov al, byte [rcx + rax]
mov byte [rcx + rdx], al
inc rdx
mov qword [rsp + 0x30], rdx
xor eax, eax
cmp dword [rsp + 0x38], 7
setae al
add eax, eax
add eax, 9
mov qword [rsp + 0x38], rax
mov edi, 1
jmp 0x140247ae8
sub ebx, eax
mov eax, edx
shr eax, 5
sub edx, eax
mov dword [rdi], edx
cmp ebx, 0xffffff
ja 0x1402473ab
shl ebx, 8
shl esi, 8
movzx eax, byte [r9]
inc r9
or esi, eax
mov edx, dword [rdi + 0x20]
mov eax, ebx
shr eax, 0xb
imul eax, edx
mov r10d, esi
sub r10d, eax
jae 0x140247b6a
mov ebp, 0x800
sub ebp, edx
shr ebp, 5
add ebp, edx
mov dword [rdi + 0x20], ebp
cmp eax, 0xffffff
ja 0x1402473e7
shl eax, 8
shl esi, 8
movzx edx, byte [r9]
inc r9
or esi, edx
mov r10d, ecx
mov ebx, dword [rdi + r10*4 + 0x24]
mov edx, eax
shr edx, 0xb
imul edx, ebx
mov ecx, esi
sub ecx, edx
jae 0x140248042
mov r15, qword [rsp + 0x30]
mov ebp, 0x800
sub ebp, ebx
shr ebp, 5
add ebp, ebx
mov r11d, 2
jmp 0x14024805c
sub eax, edx
mov ecx, ebx
shr ecx, 5
sub ebx, ecx
mov ecx, 3
mov ebp, ebx
mov edx, eax
mov r10d, edi
mov dword [r14 + 4], ebp
cmp edx, 0xffffff
ja 0x140247452
shl edx, 8
shl r10d, 8
movzx eax, byte [r9]
inc r9
or eax, r10d
mov r10d, eax
mov ecx, ecx
mov ebp, dword [r14 + rcx*4]
mov eax, edx
shr eax, 0xb
imul eax, ebp
mov ebx, r10d
sub ebx, eax
jae 0x14024756e
mov edx, 0x800
sub edx, ebp
shr edx, 5
add edx, ebp
mov dword [r14 + rcx*4], edx
add ecx, ecx
jmp 0x140247584
sub eax, edi
mov ecx, ebp
shr ecx, 5
sub ebp, ecx
mov dword [r14 + rsi*4 + 0x404], ebp
mov r12d, 3
mov edi, eax
mov r10d, edx
lea eax, [r15*4]
and eax, esi
lea ebx, [rsi + r12]
add ebx, eax
mov ecx, dword [r14 + rbx*4]
cmp edi, 0xffffff
ja 0x1402474ce
shl edi, 8
shl r10d, 8
movzx edx, byte [r9]
inc r9
or edx, r10d
mov r10d, edx
mov r13d, r8d
mov edx, edi
shr edx, 0xb
imul edx, ecx
mov ebp, r10d
mov r8d, r11d
sub ebp, edx
jae 0x1402475cf
mov ebp, 0x800
sub ebp, ecx
shr ebp, 5
add ebp, ecx
mov dword [r14 + rbx*4], ebp
add r12d, r12d
xor eax, esi
jmp 0x1402475e7
sub r15d, ebx
mov edx, eax
shr edx, 5
sub eax, edx
mov dword [r13 + rdi*4 + 0x70], eax
cmp r15d, 0xffffff
ja 0x140247529
shl r15d, 8
shl ebp, 8
movzx eax, byte [r9]
inc r9
or ebp, eax
mov r12d, dword [rsp + 0x4c]
mov esi, dword [r13 + rdi*4 + 0xa0]
mov ebx, r15d
shr ebx, 0xb
imul ebx, esi
mov edx, ebp
sub edx, ebx
jae 0x140247fe2
mov edx, 0x800
sub edx, esi
shr edx, 5
add edx, esi
mov dword [r13 + rdi*4 + 0xa0], edx
mov eax, dword [rsp + 0x2c]
mov edx, dword [rsp + 0x28]
mov edi, dword [rsp + 0x24]
jmp 0x140247fb4
sub edx, eax
mov eax, ebp
shr eax, 5
sub ebp, eax
mov dword [r14 + rcx*4], ebp
add ecx, ecx
inc ecx
mov eax, edx
mov r10d, ebx
mov ebp, ecx
mov ebx, dword [r14 + rbp*4]
cmp eax, 0xffffff
ja 0x1402475a5
shl eax, 8
shl r10d, 8
movzx ecx, byte [r9]
inc r9
or ecx, r10d
mov r10d, ecx
mov edx, eax
shr edx, 0xb
imul edx, ebx
mov ecx, r10d
sub ecx, edx
jae 0x140247640
mov eax, 0x800
sub eax, ebx
shr eax, 5
add eax, ebx
mov dword [r14 + rbp*4], eax
add ebp, ebp
jmp 0x140247656
sub edi, edx
mov edx, ecx
shr edx, 5
sub ecx, edx
mov dword [r14 + rbx*4], ecx
add r12d, r12d
inc r12d
mov edx, edi
mov r10d, ebp
lea r11d, [r15*8]
and r11d, eax
lea edi, [rax + r12]
add edi, r11d
mov ecx, dword [r14 + rdi*4]
cmp edx, 0xffffff
ja 0x140247619
shl edx, 8
shl r10d, 8
movzx ebp, byte [r9]
inc r9
or ebp, r10d
mov r10d, ebp
mov ebx, edx
shr ebx, 0xb
imul ebx, ecx
mov ebp, r10d
sub ebp, ebx
jae 0x1402476a2
mov edx, 0x800
sub edx, ecx
shr edx, 5
add edx, ecx
mov dword [r14 + rdi*4], edx
add r12d, r12d
xor r11d, eax
jmp 0x1402476ba
sub eax, edx
mov edx, ebx
shr edx, 5
sub ebx, edx
mov dword [r14 + rbp*4], ebx
add ebp, ebp
inc ebp
mov edx, eax
mov r10d, ecx
mov ebp, ebp
mov ebx, dword [r14 + rbp*4]
cmp edx, 0xffffff
ja 0x140247678
shl edx, 8
shl r10d, 8
movzx eax, byte [r9]
inc r9
or eax, r10d
mov r10d, eax
mov eax, edx
shr eax, 0xb
imul eax, ebx
mov ecx, r10d
sub ecx, eax
jae 0x140247710
mov ecx, 0x800
sub ecx, ebx
shr ecx, 5
add ecx, ebx
mov dword [r14 + rbp*4], ecx
add ebp, ebp
jmp 0x140247726
sub edx, ebx
mov eax, ecx
shr eax, 5
sub ecx, eax
mov dword [r14 + rdi*4], ecx
add r12d, r12d
inc r12d
mov ebx, edx
mov r10d, ebp
mov eax, r15d
shl eax, 4
and eax, r11d
lea edx, [r11 + r12]
add edx, eax
mov esi, dword [r14 + rdx*4]
cmp ebx, 0xffffff
ja 0x1402476e9
shl ebx, 8
shl r10d, 8
movzx ebp, byte [r9]
inc r9
or ebp, r10d
mov r10d, ebp
mov edi, ebx
shr edi, 0xb
imul edi, esi
mov ebp, r10d
sub ebp, edi
jae 0x140247771
mov ebp, 0x800
sub ebp, esi
shr ebp, 5
add ebp, esi
mov dword [r14 + rdx*4], ebp
add r12d, r12d
xor eax, r11d
jmp 0x140247789
sub edx, eax
mov eax, ebx
shr eax, 5
sub ebx, eax
mov dword [r14 + rbp*4], ebx
add ebp, ebp
inc ebp
mov eax, edx
mov r10d, ecx
mov ebp, ebp
mov ebx, dword [r14 + rbp*4]
cmp eax, 0xffffff
ja 0x140247747
shl eax, 8
shl r10d, 8
movzx ecx, byte [r9]
inc r9
or ecx, r10d
mov r10d, ecx
mov edx, eax
shr edx, 0xb
imul edx, ebx
mov ecx, r10d
sub ecx, edx
jae 0x1402477dd
mov eax, 0x800
sub eax, ebx
shr eax, 5
add eax, ebx
mov dword [r14 + rbp*4], eax
add ebp, ebp
jmp 0x1402477f3
sub ebx, edi
mov ecx, esi
shr ecx, 5
sub esi, ecx
mov dword [r14 + rdx*4], esi
add r12d, r12d
inc r12d
mov edi, ebx
mov r10d, ebp
mov esi, r15d
shl esi, 5
and esi, eax
lea edx, [rax + r12]
add edx, esi
mov ecx, dword [r14 + rdx*4]
cmp edi, 0xffffff
ja 0x1402477b7
shl edi, 8
shl r10d, 8
movzx ebp, byte [r9]
inc r9
or ebp, r10d
mov r10d, ebp
mov ebx, edi
shr ebx, 0xb
imul ebx, ecx
mov ebp, r10d
sub ebp, ebx
jae 0x14024783f
mov ebp, 0x800
sub ebp, ecx
shr ebp, 5
add ebp, ecx
mov dword [r14 + rdx*4], ebp
add r12d, r12d
xor esi, eax
jmp 0x140247857
sub eax, edx
mov edx, ebx
shr edx, 5
sub ebx, edx
mov dword [r14 + rbp*4], ebx
add ebp, ebp
inc ebp
mov edx, eax
mov r10d, ecx
mov ebp, ebp
mov ebx, dword [r14 + rbp*4]
cmp edx, 0xffffff
ja 0x140247815
shl edx, 8
shl r10d, 8
movzx eax, byte [r9]
inc r9
or eax, r10d
mov r10d, eax
mov eax, edx
shr eax, 0xb
imul eax, ebx
mov ecx, r10d
sub ecx, eax
jae 0x1402478af
mov ecx, 0x800
sub ecx, ebx
shr ecx, 5
add ecx, ebx
mov dword [r14 + rbp*4], ecx
add ebp, ebp
jmp 0x1402478c5
sub edi, ebx
mov eax, ecx
shr eax, 5
sub ecx, eax
mov dword [r14 + rdx*4], ecx
add r12d, r12d
inc r12d
mov ebx, edi
mov r10d, ebp
mov r11d, r15d
shl r11d, 6
and r11d, esi
lea eax, [rsi + r12]
add eax, r11d
mov ebp, dword [r14 + rax*4]
cmp ebx, 0xffffff
ja 0x140247888
shl ebx, 8
shl r10d, 8
movzx edx, byte [r9]
inc r9
or edx, r10d
mov r10d, edx
mov edi, ebx
shr edi, 0xb
imul edi, ebp
mov edx, r10d
sub edx, edi
jae 0x140247910
mov edx, 0x800
sub edx, ebp
shr edx, 5
add edx, ebp
mov dword [r14 + rax*4], edx
add r12d, r12d
xor r11d, esi
jmp 0x140247928
sub edx, eax
mov eax, ebx
shr eax, 5
sub ebx, eax
mov dword [r14 + rbp*4], ebx
add ebp, ebp
inc ebp
mov eax, edx
mov r10d, ecx
mov ebp, ebp
mov ebx, dword [r14 + rbp*4]
cmp eax, 0xffffff
ja 0x1402478e6
shl eax, 8
shl r10d, 8
movzx ecx, byte [r9]
inc r9
or ecx, r10d
mov r10d, ecx
mov edx, eax
shr edx, 0xb
imul edx, ebx
mov ecx, r10d
sub ecx, edx
jae 0x140247985
mov eax, 0x800
sub eax, ebx
shr eax, 5
add eax, ebx
mov dword [r14 + rbp*4], eax
add ebp, ebp
jmp 0x14024799b
sub ebx, edi
mov ecx, ebp
shr ecx, 5
sub ebp, ecx
mov dword [r14 + rax*4], ebp
add r12d, r12d
inc r12d
mov edi, ebx
mov r10d, edx
mov eax, r15d
shl eax, 7
and eax, r11d
lea edx, [r11 + r12]
add edx, eax
mov ebp, dword [r14 + rdx*4]
cmp edi, 0xffffff
ja 0x140247957
shl edi, 8
shl r10d, 8
movzx esi, byte [r9]
inc r9
or esi, r10d
mov r10d, esi
mov esi, edi
shr esi, 0xb
imul esi, ebp
mov ebx, r10d
sub ebx, esi
jae 0x1402479f7
mov edi, 0x800
sub edi, ebp
shr edi, 5
add edi, ebp
mov dword [r14 + rdx*4], edi
add r12d, r12d
xor eax, r11d
jmp 0x140247a0f
sub eax, edx
mov edx, ebx
shr edx, 5
sub ebx, edx
mov dword [r14 + rbp*4], ebx
add ebp, ebp
inc ebp
mov edx, eax
mov r10d, ecx
mov eax, ebp
mov ebx, dword [r14 + rax*4]
cmp edx, 0xffffff
mov qword [rsp + 0x38], rsi
ja 0x1402479c2
shl edx, 8
shl r10d, 8
movzx ecx, byte [r9]
inc r9
or ecx, r10d
mov r10d, ecx
mov r15d, edx
shr r15d, 0xb
imul r15d, ebx
mov ecx, r10d
sub ecx, r15d
mov rsi, qword [rsp + 0x40]
jae 0x140247a84
mov ecx, 0x800
sub ecx, ebx
shr ecx, 5
add ecx, ebx
mov dword [r14 + rax*4], ecx
lea r12d, [rax + rax]
jmp 0x140247ac0
sub edi, esi
mov ecx, ebp
shr ecx, 5
sub ebp, ecx
mov dword [r14 + rdx*4], ebp
add r12d, r12d
inc r12d
mov esi, edi
mov r10d, ebx
mov r11d, r8d
shl r15d, 8
and r15d, eax
add eax, r12d
add eax, r15d
mov ebp, dword [r14 + rax*4]
cmp esi, 0xffffff
mov r8d, r13d
ja 0x140247a42
shl esi, 8
shl r10d, 8
movzx ecx, byte [r9]
inc r9
or ecx, r10d
mov r10d, ecx
mov rdx, qword [rsp + 0x38]
xor ecx, ecx
mov bl, byte [rsp + 0x54]
mov cl, bl
lea ecx, [rcx + rcx*2]
add edx, ecx
add edx, 0xfffffffa
mov qword [rsp + 0x38], rdx
mov r15d, esi
shr r15d, 0xb
imul r15d, ebp
mov ecx, r10d
sub ecx, r15d
jae 0x140247aa1
mov ecx, 0x800
sub ecx, ebp
shr ecx, 5
add ecx, ebp
mov dword [r14 + rax*4], ecx
add r12d, r12d
jmp 0x140247abb
sub edx, r15d
mov ebp, ebx
shr ebp, 5
sub ebx, ebp
mov dword [r14 + rax*4], ebx
lea r12d, [rax + rax]
inc r12d
mov r15d, edx
mov r10d, ecx
jmp 0x140247ac0
sub esi, r15d
mov edx, ebp
shr edx, 5
sub ebp, edx
mov dword [r14 + rax*4], ebp
add r12d, r12d
inc r12d
mov r15d, esi
mov r10d, ecx
mov rsi, qword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
mov byte [rsi + rax], r12b
inc rax
mov qword [rsp + 0x30], rax
mov edi, 1
mov r14, qword [rsp + 0xb0]
mov r12d, dword [rsp + 0x4c]
mov r13, qword [rsp + 0x58]
add r12d, edi
mov rax, qword [rsp + 0x30]
cmp rax, qword [rsp + 0x70]
jae 0x140248518
cmp r9, r14
jb 0x140246fd5
jmp 0x140248518
sub eax, edx
mov edx, esi
shr edx, 5
sub esi, edx
mov r11d, 3
mov ebx, esi
mov edx, eax
mov ebp, ecx
lea rax, [rdi + r10*4]
mov dword [rax + 4], ebx
mov ebx, r11d
mov edi, dword [rax + rbx*4]
cmp edx, 0xffffff
ja 0x140247b42
shl edx, 8
shl ebp, 8
movzx ecx, byte [r9]
inc r9
or ebp, ecx
mov ecx, edx
shr ecx, 0xb
imul ecx, edi
mov esi, ebp
sub esi, ecx
jae 0x140247c05
mov edx, 0x800
sub edx, edi
shr edx, 5
add edx, edi
mov dword [rax + rbx*4], edx
add ebx, ebx
jmp 0x140247c19
sub ebx, eax
mov eax, edx
shr eax, 5
sub edx, eax
mov dword [rdi + 0x20], edx
mov r11d, 1
mov r15d, ebx
mov rsi, qword [rsp + 0x40]
cmp r15d, 0xffffff
ja 0x140247b9f
shl r15d, 8
shl r10d, 8
movzx eax, byte [r9]
inc r9
or r10d, eax
mov ecx, r15d
mov eax, r11d
mov ebx, dword [rdi + rax*4 + 0x400]
shr r15d, 0xb
imul r15d, ebx
mov ebp, r10d
sub ebp, r15d
jae 0x140247bd5
mov ecx, 0x800
sub ecx, ebx
shr ecx, 5
add ecx, ebx
mov dword [rdi + rax*4 + 0x400], ecx
lea r11d, [rax + rax]
jmp 0x140247bf3
sub ecx, r15d
mov edx, ebx
shr edx, 5
sub ebx, edx
mov dword [rdi + rax*4 + 0x400], ebx
lea r11d, [rax + rax]
inc r11d
mov r15d, ecx
mov r10d, ebp
cmp r11d, 0x100
jb 0x140247b84
add r11d, 0xffffff10
jmp 0x140247c81
sub edx, ecx
mov ecx, edi
shr ecx, 5
sub edi, ecx
mov dword [rax + rbx*4], edi
add ebx, ebx
inc ebx
mov ecx, edx
mov ebp, esi
mov edx, ebx
mov esi, dword [rax + rdx*4]
cmp ecx, 0xffffff
ja 0x140247c35
shl ecx, 8
shl ebp, 8
movzx edi, byte [r9]
inc r9
or ebp, edi
mov r15d, ecx
shr r15d, 0xb
imul r15d, esi
mov edi, ebp
sub edi, r15d
jae 0x140247c5c
mov ecx, 0x800
sub ecx, esi
shr ecx, 5
add ecx, esi
mov dword [rax + rdx*4], ecx
lea r11d, [rdx + rdx]
jmp 0x140247c75
sub ecx, r15d
mov ebx, esi
shr ebx, 5
sub esi, ebx
mov dword [rax + rdx*4], esi
lea r11d, [rdx + rdx]
inc r11d
mov r15d, ecx
mov ebp, edi
add r11d, 0xfffffff8
mov r10d, ebp
mov rsi, qword [rsp + 0x40]
cmp dword [rsp + 0x38], 0xc
jb 0x140247ce5
cmp r11d, 3
mov eax, 3
cmovb eax, r11d
shl eax, 6
cmp r15d, 0xffffff
ja 0x140247cb6
shl r15d, 8
shl r10d, 8
movzx ecx, byte [r9]
inc r9
or ecx, r10d
mov r10d, ecx
mov rcx, qword [rsp + 0x88]
mov ebx, dword [rcx + rax*4 + 4]
mov edx, r15d
shr edx, 0xb
imul edx, ebx
mov edi, r10d
sub edi, edx
jae 0x140247d06
mov ecx, 0x800
sub ecx, ebx
shr ecx, 5
add ecx, ebx
mov ebp, 2
jmp 0x140247d1d
mov eax, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x2c]
mov dword [rsp + 0x24], ecx
mov ecx, dword [rsp + 0x28]
mov dword [rsp + 0x2c], ecx
mov ecx, dword [rsp + 0x48]
mov dword [rsp + 0x28], ecx
jmp 0x14024839a
sub r15d, edx
mov ecx, ebx
shr ecx, 5
sub ebx, ecx
mov ebp, 3
mov ecx, ebx
mov edx, r15d
mov r10d, edi
mov rbx, qword [rsp + 0x88]
lea rdi, [rbx + rax*4]
mov dword [rdi + 4], ecx
cmp edx, 0xffffff
ja 0x140247d48
shl edx, 8
shl r10d, 8
movzx eax, byte [r9]
inc r9
or eax, r10d
mov r10d, eax
mov ebp, ebp
mov ebx, dword [rdi + rbp*4]
mov eax, edx
shr eax, 0xb
imul eax, ebx
mov ecx, r10d
sub ecx, eax
jae 0x140247d6f
mov ecx, 0x800
sub ecx, ebx
shr ecx, 5
add ecx, ebx
mov dword [rdi + rbp*4], ecx
add ebp, ebp
jmp 0x140247d84
sub edx, eax
mov eax, ebx
shr eax, 5
sub ebx, eax
mov dword [rdi + rbp*4], ebx
add ebp, ebp
inc ebp
mov eax, edx
mov r10d, ecx
mov ebp, ebp
mov ebx, dword [rdi + rbp*4]
cmp eax, 0xffffff
ja 0x140247da4
shl eax, 8
shl r10d, 8
movzx ecx, byte [r9]
inc r9
or ecx, r10d
mov r10d, ecx
mov edx, eax
shr edx, 0xb
imul edx, ebx
mov ecx, r10d
sub ecx, edx
jae 0x140247dc6
mov eax, 0x800
sub eax, ebx
shr eax, 5
add eax, ebx
mov dword [rdi + rbp*4], eax
add ebp, ebp
jmp 0x140247ddb
sub eax, edx
mov edx, ebx
shr edx, 5
sub ebx, edx
mov dword [rdi + rbp*4], ebx
add ebp, ebp
inc ebp
mov edx, eax
mov r10d, ecx
mov ebp, ebp
mov ebx, dword [rdi + rbp*4]
cmp edx, 0xffffff
ja 0x140247dfc
shl edx, 8
shl r10d, 8
movzx eax, byte [r9]
inc r9
or eax, r10d
mov r10d, eax
mov eax, edx
shr eax, 0xb
imul eax, ebx
mov ecx, r10d
sub ecx, eax
jae 0x140247e1e
mov ecx, 0x800
sub ecx, ebx
shr ecx, 5
add ecx, ebx
mov dword [rdi + rbp*4], ecx
add ebp, ebp
jmp 0x140247e33
sub edx, eax
mov eax, ebx
shr eax, 5
sub ebx, eax
mov dword [rdi + rbp*4], ebx
add ebp, ebp
inc ebp
mov eax, edx
mov r10d, ecx
mov ebp, ebp
mov ebx, dword [rdi + rbp*4]
cmp eax, 0xffffff
ja 0x140247e53
shl eax, 8
shl r10d, 8
movzx ecx, byte [r9]
inc r9
or ecx, r10d
mov r10d, ecx
mov edx, eax
shr edx, 0xb
imul edx, ebx
mov ecx, r10d
sub ecx, edx
jae 0x140247e75
mov eax, 0x800
sub eax, ebx
shr eax, 5
add eax, ebx
mov dword [rdi + rbp*4], eax
add ebp, ebp
jmp 0x140247e8a
sub eax, edx
mov edx, ebx
shr edx, 5
sub ebx, edx
mov dword [rdi + rbp*4], ebx
add ebp, ebp
inc ebp
mov edx, eax
mov r10d, ecx
mov eax, ebp
mov ebx, dword [rdi + rax*4]
cmp edx, 0xffffff
ja 0x140247eab
shl edx, 8
shl r10d, 8
movzx ecx, byte [r9]
inc r9
or ecx, r10d
mov r10d, ecx
mov r15d, edx
shr r15d, 0xb
imul r15d, ebx
mov ecx, r10d
sub ecx, r15d
jae 0x140247ed2
mov ecx, 0x800
sub ecx, ebx
shr ecx, 5
add ecx, ebx
mov dword [rdi + rax*4], ecx
lea ebp, [rax + rax]
jmp 0x140247eea
sub edx, r15d
mov ebp, ebx
shr ebp, 5
sub ebx, ebp
mov dword [rdi + rax*4], ebx
lea ebp, [rax + rax]
inc ebp
mov r15d, edx
mov r10d, ecx
lea eax, [rbp - 0x40]
cmp eax, 4
jb 0x14024836f
mov ecx, eax
shr ecx, 1
and ebp, 1
or ebp, 2
cmp eax, 0xd
ja 0x1402480b1
dec ecx
shl ebp, cl
inc ebp
mov eax, 1
cmp r15d, 0xffffff
ja 0x140247f2f
shl r15d, 8
shl r10d, 8
movzx edx, byte [r9]
inc r9
or r10d, edx
mov edx, r15d
mov ebp, ebp
mov esi, dword [r13 + rbp*4 - 0x1a00]
shr r15d, 0xb
imul r15d, esi
mov edi, r10d
sub edi, r15d
jae 0x140247f66
mov edx, 0x800
sub edx, esi
shr edx, 5
add edx, esi
mov dword [r13 + rbp*4 - 0x1a00], edx
mov edx, eax
add eax, eax
jmp 0x140247f82
sub edx, r15d
mov ebx, esi
shr ebx, 5
sub esi, ebx
mov dword [r13 + rbp*4 - 0x1a00], esi
add eax, eax
mov r15d, edx
mov r10d, edi
mov edx, eax
mov rsi, qword [rsp + 0x40]
add ebp, edx
dec ecx
jne 0x140247f14
sub ebp, eax
mov eax, ebp
jmp 0x14024836f
sub ebx, r15d
mov edx, eax
shr edx, 5
sub eax, edx
mov dword [r13 + rsi*4 - 0x1800], eax
mov eax, dword [rsp + 0x24]
mov edi, dword [rsp + 0x2c]
mov edx, dword [rsp + 0x28]
mov rsi, qword [rsp + 0x38]
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x2c], edi
xor edx, edx
cmp esi, 7
setae dl
lea r15d, [rdx + rdx*2]
or r15d, 8
mov dword [rsp + 0x24], eax
mov rdi, qword [rsp + 0xa0]
jmp 0x14024716c
sub r15d, ebx
mov eax, esi
shr eax, 5
sub esi, eax
mov dword [r13 + rdi*4 + 0xa0], esi
cmp r15d, 0xffffff
ja 0x14024800d
shl r15d, 8
shl edx, 8
movzx eax, byte [r9]
inc r9
or edx, eax
mov eax, dword [r13 + rdi*4 + 0xd0]
mov ebx, r15d
shr ebx, 0xb
imul ebx, eax
mov esi, edx
sub esi, ebx
jae 0x1402481c9
mov ebp, 0x800
sub ebp, eax
shr ebp, 5
add ebp, eax
mov rsi, qword [rsp + 0x38]
mov eax, dword [rsp + 0x28]
jmp 0x1402481ed
mov r15, qword [rsp + 0x30]
sub eax, edx
mov edx, ebx
shr edx, 5
sub ebx, edx
mov r11d, 3
mov ebp, ebx
mov edx, eax
mov esi, ecx
lea rax, [rdi + r10*4]
add rax, 0x20
mov dword [rax + 4], ebp
mov ebp, r11d
mov ebx, dword [rax + rbp*4]
cmp edx, 0xffffff
mov qword [rsp + 0x30], r15
ja 0x140248089
shl edx, 8
shl esi, 8
movzx ecx, byte [r9]
inc r9
or esi, ecx
mov ecx, edx
shr ecx, 0xb
imul ecx, ebx
mov edi, esi
sub edi, ecx
jae 0x140248144
mov edx, 0x800
sub edx, ebx
shr edx, 5
add edx, ebx
mov dword [rax + rbp*4], edx
add ebp, ebp
jmp 0x140248158
add ecx, 0xfffffffb
cmp r15d, 0xffffff
ja 0x1402480d7
shl r15d, 8
shl r10d, 8
movzx edx, byte [r9]
inc r9
or edx, r10d
mov eax, r15d
mov r10d, edx
jmp 0x1402480da
mov eax, r15d
shr r15d, 1
mov edx, r10d
sub edx, r15d
mov r10d, edx
sar r10d, 0x1f
lea ebp, [r10 + rbp*2]
inc ebp
and r10d, r15d
add r10d, edx
dec ecx
jne 0x1402480b4
cmp eax, 0x1ffffff
ja 0x140248116
shl r15d, 8
shl r10d, 8
movzx eax, byte [r9]
inc r9
or eax, r10d
mov r10d, eax
mov ebx, dword [r13 + 4]
mov eax, r15d
shr eax, 0xb
imul eax, ebx
mov edi, r10d
sub edi, eax
jae 0x140248204
mov edx, 0x800
sub edx, ebx
shr edx, 5
add edx, ebx
mov ecx, 2
jmp 0x14024821b
sub edx, ecx
mov ecx, ebx
shr ecx, 5
sub ebx, ecx
mov dword [rax + rbp*4], ebx
add ebp, ebp
inc ebp
mov ecx, edx
mov esi, edi
mov edx, ebp
mov edi, dword [rax + rdx*4]
cmp ecx, 0xffffff
ja 0x140248177
shl ecx, 8
shl esi, 8
movzx r10d, byte [r9]
inc r9
or r10d, esi
jmp 0x14024817a
mov r10d, esi
mov rsi, qword [rsp + 0x40]
mov r15d, ecx
shr r15d, 0xb
imul r15d, edi
mov ebx, r10d
sub ebx, r15d
jae 0x1402481aa
mov ecx, 0x800
sub ecx, edi
shr ecx, 5
add ecx, edi
mov dword [rax + rdx*4], ecx
lea r11d, [rdx + rdx]
jmp 0x140247c81
sub ecx, r15d
mov ebp, edi
shr ebp, 5
sub edi, ebp
mov dword [rax + rdx*4], edi
lea r11d, [rdx + rdx]
inc r11d
mov r15d, ecx
mov r10d, ebx
jmp 0x140247c81
sub r15d, ebx
mov edx, eax
shr edx, 5
sub eax, edx
mov ebp, eax
mov r10d, dword [rsp + 0x28]
mov ebx, r15d
mov edx, esi
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x48], r10d
mov rsi, qword [rsp + 0x38]
mov dword [r13 + rdi*4 + 0xd0], ebp
mov ebp, edx
mov edx, dword [rsp + 0x2c]
mov edi, dword [rsp + 0x24]
jmp 0x140247fb9
sub r15d, eax
mov eax, ebx
shr eax, 5
sub ebx, eax
mov ecx, 3
mov edx, ebx
mov eax, r15d
mov r10d, edi
mov dword [r13 + 4], edx
cmp eax, 0xffffff
ja 0x14024823a
shl eax, 8
shl r10d, 8
movzx edx, byte [r9]
inc r9
or edx, r10d
mov r10d, edx
mov edx, ecx
mov rsi, r13
mov ebx, dword [r13 + rdx*4]
mov ecx, eax
shr ecx, 0xb
imul ecx, ebx
mov edi, r10d
mov r8d, r11d
sub edi, ecx
jae 0x14024826f
mov r15, qword [rsp + 0x30]
mov eax, 0x800
sub eax, ebx
shr eax, 5
add eax, ebx
mov dword [rsi + rdx*4], eax
add edx, 2
jmp 0x140248288
mov r15, qword [rsp + 0x30]
sub eax, ecx
mov ecx, ebx
shr ecx, 5
sub ebx, ecx
mov dword [rsi + rdx*4], ebx
add edx, 4
mov ecx, eax
mov r10d, edi
mov r11d, edx
mov r13, rsi
mov esi, dword [rsi + r11*4]
cmp ecx, 0xffffff
ja 0x1402482ae
shl ecx, 8
shl r10d, 8
movzx eax, byte [r9]
inc r9
or eax, r10d
mov r10d, eax
mov edx, ecx
shr edx, 0xb
imul edx, esi
mov ebx, r10d
sub ebx, edx
jae 0x1402482d0
mov edi, 0x800
sub edi, esi
shr edi, 5
add edi, esi
mov eax, 4
jmp 0x1402482e5
sub ecx, edx
mov eax, esi
shr eax, 5
sub esi, eax
mov eax, 8
mov edi, esi
mov edx, ecx
mov r10d, ebx
mov rcx, r13
mov dword [r13 + r11*4], edi
add eax, r11d
mov edi, dword [r13 + rax*4]
cmp edx, 0xffffff
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0x30], r15
ja 0x14024831b
shl edx, 8
shl r10d, 8
movzx ebx, byte [r9]
inc r9
or ebx, r10d
mov r10d, ebx
mov r11d, r8d
shl ebp, 4
mov r15d, edx
shr r15d, 0xb
imul r15d, edi
mov ebx, r10d
sub ebx, r15d
mov r8d, dword [rsp + 0x50]
jae 0x14024834f
mov edx, 0x800
sub edx, edi
shr edx, 5
add edx, edi
mov dword [r13 + rax*4], edx
add eax, 0xfffffff8
jmp 0x140248364
sub edx, r15d
mov ecx, edi
shr ecx, 5
sub edi, ecx
mov dword [r13 + rax*4], edi
mov r15d, edx
mov r10d, ebx
or eax, ebp
cmp eax, 0xffffffff
je 0x140248505
xor ecx, ecx
cmp dword [rsp + 0x38], 0x13
setae dl
mov ebp, dword [rsp + 0x64]
test ebp, ebp
cmove ebp, r12d
cmp eax, ebp
jae 0x1402484db
inc eax
mov cl, dl
lea ecx, [rcx + rcx*2]
add ecx, 7
mov qword [rsp + 0x38], rcx
mov rdi, qword [rsp + 0x70]
sub rdi, qword [rsp + 0x30]
je 0x1402484db
add r11d, 2
mov ecx, r11d
cmp rdi, rcx
cmovae edi, r11d
mov ebx, eax
mov rdx, qword [rsp + 0x30]
sub rdx, rbx
mov ebp, 0
mov rcx, qword [rsp + 0x68]
cmovb rbp, rcx
add rdx, rbp
sub r11d, edi
sub rcx, rdx
cmp rcx, rdi
jae 0x140248452
mov dword [rsp + 0x54], r11d
mov r13, r14
mov r14d, r12d
mov rcx, qword [rsp + 0x30]
mov r11d, r8d
mov r12, rcx
lea rbx, [rsi + rcx]
xor ebp, ebp
mov r8, qword [rsp + 0x68]
mov cl, byte [rsi + rdx]
mov byte [rbx + rbp], cl
inc rdx
cmp rdx, r8
mov ecx, 0
cmove rdx, rcx
inc rbp
cmp edi, ebp
jne 0x1402483ff
add r12, rbp
mov qword [rsp + 0x30], r12
mov ecx, dword [rsp + 0x28]
mov dword [rsp + 0x48], ecx
mov ecx, dword [rsp + 0x2c]
mov dword [rsp + 0x28], ecx
mov ecx, dword [rsp + 0x24]
mov dword [rsp + 0x2c], ecx
mov dword [rsp + 0x24], eax
mov r8d, r11d
mov r12d, r14d
mov r14, r13
mov r11d, dword [rsp + 0x54]
jmp 0x140247ae3
mov rcx, qword [rsp + 0x30]
lea rdx, [rsi + rcx]
sub rbp, rbx
mov rcx, rdi
mov bl, byte [rdx + rbp]
mov byte [rdx], bl
inc rdx
dec rcx
jne 0x140248461
add qword [rsp + 0x30], rdi
mov ecx, dword [rsp + 0x28]
mov dword [rsp + 0x48], ecx
mov ecx, dword [rsp + 0x2c]
mov dword [rsp + 0x28], ecx
mov ecx, dword [rsp + 0x24]
mov dword [rsp + 0x2c], ecx
mov dword [rsp + 0x24], eax
jmp 0x140247ae8
mov eax, dword [rsi + 4]
mov r12d, dword [rsi + 0x40]
sub eax, r12d
mov rbp, qword [rsi + 0x28]
mov rcx, rdi
sub rcx, rbp
mov rdx, rbp
mov qword [rsp + 0x30], rbp
lea rdx, [rax + rbp]
cmp rcx, rax
cmovbe rdx, rdi
mov qword [rsp + 0x70], rdx
test r12d, r12d
jne 0x140246f15
xor r12d, r12d
cmp dword [rsi + 0x3c], 0xbffffbff
jbe 0x140246f15
jmp 0x1402484ec
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x30]
mov qword [rax + 0x28], rcx
mov eax, 1
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x38]
add eax, 0xfffffff4
mov qword [rsp + 0x38], rax
mov r11d, 0x112
cmp r15d, 0xffffff
ja 0x140248536
shl r15d, 8
shl r10d, 8
movzx eax, byte [r9]
inc r9
or eax, r10d
mov r10d, eax
mov eax, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x24]
mov rsi, qword [rsp + 0x80]
mov qword [rsi + 0x30], r9
mov dword [rsi + 0x38], r15d
mov dword [rsi + 0x3c], r10d
mov dword [rsi + 0x5c], r11d
mov rdx, qword [rsp + 0x30]
mov qword [rsi + 0x28], rdx
mov dword [rsi + 0x40], r12d
mov dword [rsi + 0x48], ecx
mov dword [rsi + 0x4c], eax
mov eax, dword [rsp + 0x28]
mov dword [rsi + 0x50], eax
mov eax, dword [rsp + 0x48]
mov dword [rsi + 0x54], eax
mov rax, qword [rsp + 0x38]
mov dword [rsi + 0x58], eax
cmp dword [rsi + 0x44], 0
jne 0x140248590
mov eax, dword [rsi + 4]
cmp r12d, eax
jb 0x140248590
mov dword [rsi + 0x44], eax
mov rcx, rsi
mov rdi, qword [rsp + 0x98]
mov rdx, rdi
call fcn.140246810
xor eax, eax
cmp qword [rsi + 0x28], rdi
jae 0x1402484f1
cmp qword [rsi + 0x30], r14
jae 0x1402484f1
cmp dword [rsi + 0x5c], 0x112
jb 0x140246ef4
jmp 0x1402484f1