Function at 0x45dd80
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x50
mov edi, ecx
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov eax, dword [0x5a8564]
xor eax, ebp
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 8]
test ebx, ebx
je 0x45e24c
test esi, esi
je 0x45e37a
cmp esi, 0x7fe00001
jb 0x45ddca
xor ebx, ebx
test al, 1
jne 0x45f97f
push esi
call fcn.00493370
mov dword [esp + 0xc], edi
test al, 0x10
sete al
movzx ecx, byte [0x5b7d10]
and cl, al
mov dword [esp + 0x24], 0xffffffff
mov byte [esp + 0x14], cl
cmp cl, 1
je 0x45e48d
mov eax, ebx
and eax, 0xffe00000
mov ecx, ebx
shr ecx, 9
and ecx, 0xfe0
lea edi, [ecx + eax]
movzx eax, byte [ecx + eax + 0x101e]
and eax, 0x3f
shl eax, 5
sub edi, eax
add edi, 0x1000
mov eax, edi
and eax, 0xffe01000
mov esi, dword [eax]
lea ebx, [esi + 0x40]
mov dword [esp + 0x30], ebx
cmp dword [0x5a9910], 0
je 0x45de9f
mov ecx, dword [0x5a990c]
test ecx, ecx
je 0x45decf
call dword [section..00cfg]
push ebx
call ecx
test al, al
jne 0x45de57
mov ecx, ebx
call fcn.0045d630
test byte [edi + 0xf], 8
jne 0x45e4a8
mov eax, dword [edi + 8]
add eax, 0xc
mov eax, dword [eax]
sub eax, dword [esi + 8]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 8]
cmp byte [eax + 0x10], 0
je 0x45e4b0
mov ebx, dword [esp + 0x30]
cmp dword [0x5a97a8], 0
je 0x45dee0
mov ecx, dword [0x5a97a4]
test ecx, ecx
je 0x45df0c
call dword [section..00cfg]
push ebx
call ecx
jmp 0x45df10
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.TryAcquireSRWLockExclusive
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a990c], eax
mov dword [0x5a9910], 1
test ecx, ecx
jne 0x45de43
xor eax, eax
lock bts dword [ebx], eax
jb 0x45de50
jmp 0x45de57
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x560f2f
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a97a4], eax
mov dword [0x5a97a8], 1
test ecx, ecx
jne 0x45de94
xor eax, eax
xchg dword [ebx], eax
mov ecx, esi
mov esi, dword [ebp + 0x10]
push esi
push edi
mov ebx, dword [ebp + 0xc]
push ebx
call fcn.004602c0
test al, al
jne 0x45f97f
mov eax, dword [ebp + 8]
test al, 0x10
jne 0x45e051
mov dword [esp + 0x28], 0
movzx ebx, byte [0x5b7d10]
test bl, 1
mov edi, dword [esp + 0xc]
jne 0x45e5f5
mov eax, esi
mov esi, dword [edi + 8]
add esi, eax
jb 0x45e4f0
movzx eax, byte [edi + 2]
mov edx, 0x20
mov ecx, 0x20
je 0x45df72
bsr ecx, esi
xor ecx, 0x1f
sub edx, ecx
mov edi, 0x568f8e
sub edi, ecx
movzx ecx, byte [edi]
mov edi, esi
shr edi, cl
and edi, 7
mov ecx, dword [edx*4 + 0x568f90]
and ecx, esi
lea edx, [edi + edx*8]
cmp ecx, 1
sbb edx, 0xffffffff
movzx edi, word [edx + edx + 0x56a1f8]
test al, al
jne 0x45dfb9
cmp esi, 0x41
setae al
cmp di, 0x76
setb cl
and cl, al
movzx eax, cl
or eax, edi
mov edi, eax
mov byte [esp + 0x14], bl
mov byte [esp + 0x2f], 0
mov eax, dword [esp + 0xc]
cmp byte [eax + 3], 0
je 0x45e63f
mov ecx, 0x5aa9ac
call fcn.00404ea0
mov ebx, dword [eax]
cmp ebx, 1
jbe 0x45e6c9
cmp ebx, 2
jb 0x45e641
movzx edi, di
add dword [ebx + edi*8 + 0x58], 1
adc dword [ebx + edi*8 + 0x5c], 0
add dword [ebx + 8], 1
adc dword [ebx + 0xc], 0
cmp word [0x5a74e8], di
jb 0x45e6e2
mov edx, dword [ebx + edi*8 + 0x4c0]
test edx, edx
je 0x45e762
add dword [ebx + 0x10], 1
adc dword [ebx + 0x14], 0
movzx esi, word [ebx + edi*8 + 0x4c6]
mov eax, dword [edx]
test eax, eax
je 0x45e1d5
mov ecx, eax
bswap ecx
test ecx, 0x1fc000
je 0x45e790
prefetcht0 byte [ecx]
jmp 0x45e1d7
mov edi, dword [esp + 0xc]
mov ebx, dword [edi + 8]
add ebx, esi
jb 0x45e4f0
movzx eax, byte [edi + 2]
mov edx, 0x20
mov ecx, 0x20
je 0x45e076
bsr ecx, ebx
xor ecx, 0x1f
sub edx, ecx
mov esi, 0x568f8e
sub esi, ecx
movzx ecx, byte [esi]
mov esi, ebx
shr esi, cl
and esi, 7
mov ecx, dword [edx*4 + 0x568f90]
and ecx, ebx
lea edx, [esi + edx*8]
cmp ecx, 1
sbb edx, 0xffffffff
movzx ecx, word [edx + edx + 0x56a1f8]
test al, al
jne 0x45e0bd
cmp ebx, 0x41
setae al
cmp cx, 0x76
setb dl
and dl, al
movzx eax, dl
or eax, ecx
mov ecx, eax
mov esi, ebx
mov byte [esp + 0x28], 0
cmp byte [edi + 3], 0
movzx eax, cx
je 0x45e61a
mov dword [esp + 0x14], eax
mov ecx, 0x5aa9ac
call fcn.00404ea0
mov ebx, dword [eax]
cmp ebx, 1
jbe 0x45e663
cmp ebx, 2
mov eax, dword [esp + 0x14]
jb 0x45f768
add dword [ebx + eax*8 + 0x58], 1
adc dword [ebx + eax*8 + 0x5c], 0
add dword [ebx + 8], 1
adc dword [ebx + 0xc], 0
cmp word [0x5a74e8], ax
jb 0x45e671
mov edx, dword [ebx + eax*8 + 0x4c0]
test edx, edx
je 0x45e730
add dword [ebx + 0x10], 1
adc dword [ebx + 0x14], 0
mov esi, ebx
movzx ebx, word [ebx + eax*8 + 0x4c6]
mov eax, dword [edx]
test eax, eax
je 0x45e152
mov ecx, eax
bswap ecx
test ecx, 0x1fc000
je 0x45e80b
prefetcht0 byte [ecx]
jmp 0x45e154
xor ecx, ecx
mov eax, dword [esp + 0x14]
dec byte [esi + eax*8 + 0x4c4]
mov dword [esi + eax*8 + 0x4c0], ecx
mov ecx, ebx
mov ebx, esi
sub dword [esi], ecx
sub ecx, dword [edi + 8]
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
movdqu xmm0, xmmword [ebx + 0x4a0]
movd xmm1, ecx
movq xmm1, xmm1
movaps xmm2, xmmword [0x561370]
shufps xmm2, xmm1, 0x84
paddq xmm2, xmm0
movdqu xmmword [ebx + 0x4a0], xmm2
mov ebx, dword [edi + 0xc]
add ebx, edx
test al, 2
jne 0x45e6a2
cmp byte [edi + 6], 0
je 0x45f957
test edx, 0xfff
je 0x45e7bd
add edx, 0xfffffffc
mov dword [edx], 1
test ebx, ebx
jne 0x45f95f
jmp 0x45ddba
xor ecx, ecx
dec byte [ebx + edi*8 + 0x4c4]
mov dword [ebx + edi*8 + 0x4c0], ecx
sub dword [ebx], esi
mov edi, dword [esp + 0xc]
sub esi, dword [edi + 8]
mov eax, dword [ebp + 8]
movdqu xmm0, xmmword [ebx + 0x4a0]
movd xmm1, esi
movq xmm1, xmm1
movaps xmm2, xmmword [0x561370]
shufps xmm2, xmm1, 0x84
paddq xmm2, xmm0
movdqu xmmword [ebx + 0x4a0], xmm2
mov ebx, dword [edi + 0xc]
add ebx, edx
test al, 2
jne 0x45e70d
cmp byte [edi + 6], 0
je 0x45f949
test edx, 0xfff
mov esi, dword [ebp + 0x10]
je 0x45e7eb
add edx, 0xfffffffc
mov dword [edx], 1
jmp 0x45f94c
test al, 0x10
mov dword [esp + 0xc], edi
jne 0x45e38a
mov dword [esp + 0x28], 0
movzx ebx, byte [0x5b7d10]
test bl, 1
jne 0x45ecbe
cmp esi, 1
mov eax, esi
adc esi, 0
add esi, dword [edi + 8]
cmp esi, eax
jb 0x45e4f0
mov byte [esp + 0x14], bl
movzx eax, byte [edi + 2]
mov edx, 0x20
mov ecx, 0x20
test esi, esi
je 0x45e29f
bsr ecx, esi
xor ecx, 0x1f
sub edx, ecx
mov edi, 0x568f8e
sub edi, ecx
movzx ecx, byte [edi]
mov edi, esi
shr edi, cl
and edi, 7
mov ecx, dword [edx*4 + 0x568f90]
and ecx, esi
lea edx, [edi + edx*8]
cmp ecx, 1
sbb edx, 0xffffffff
movzx ebx, word [edx + edx + 0x56a1f8]
test al, al
jne 0x45e2e6
cmp esi, 0x41
setae al
cmp bx, 0x76
setb cl
and cl, al
movzx eax, cl
or eax, ebx
mov ebx, eax
mov eax, dword [esp + 0xc]
mov byte [esp + 0x24], 0
cmp byte [eax + 3], 0
je 0x45ed13
mov ecx, 0x5aa9ac
call fcn.00404ea0
mov edi, dword [eax]
cmp edi, 1
jbe 0x45ed94
cmp edi, 2
jb 0x45ed15
movzx ebx, bx
add dword [edi + ebx*8 + 0x58], 1
adc dword [edi + ebx*8 + 0x5c], 0
add dword [edi + 8], 1
adc dword [edi + 0xc], 0
cmp word [0x5a74e8], bx
jb 0x45edad
mov edx, dword [edi + ebx*8 + 0x4c0]
test edx, edx
je 0x45ee26
add dword [edi + 0x10], 1
adc dword [edi + 0x14], 0
movzx esi, word [edi + ebx*8 + 0x4c6]
mov eax, dword [edx]
test eax, eax
je 0x45e572
mov ecx, eax
bswap ecx
test ecx, 0x1fc000
je 0x45e790
prefetcht0 byte [ecx]
jmp 0x45e574
push ebx
call fcn.0045fbc0
add esp, 4
xor ebx, ebx
jmp 0x45f97f
cmp esi, 1
mov eax, esi
adc esi, 0
add esi, dword [edi + 8]
cmp esi, eax
jb 0x45e4f0
movzx eax, byte [edi + 2]
mov edx, 0x20
mov ecx, 0x20
test esi, esi
je 0x45e3b5
bsr ecx, esi
xor ecx, 0x1f
sub edx, ecx
mov edi, 0x568f8e
sub edi, ecx
movzx ecx, byte [edi]
mov edi, esi
shr edi, cl
and edi, 7
mov ecx, dword [edx*4 + 0x568f90]
and ecx, esi
lea edx, [edi + edx*8]
cmp ecx, 1
sbb edx, 0xffffffff
movzx ecx, word [edx + edx + 0x56a1f8]
test al, al
jne 0x45e3fc
cmp esi, 0x41
setae al
cmp cx, 0x76
setb dl
and dl, al
movzx eax, dl
or eax, ecx
mov ecx, eax
mov eax, dword [esp + 0xc]
mov byte [esp + 0x28], 0
cmp byte [eax + 3], 0
movzx ebx, cx
je 0x45ecf6
mov ecx, 0x5aa9ac
call fcn.00404ea0
mov edi, dword [eax]
cmp edi, 1
jbe 0x45ed33
cmp edi, 2
jb 0x45ecf8
add dword [edi + ebx*8 + 0x58], 1
adc dword [edi + ebx*8 + 0x5c], 0
add dword [edi + 8], 1
adc dword [edi + 0xc], 0
cmp word [0x5a74e8], bx
jb 0x45ed49
mov edx, dword [edi + ebx*8 + 0x4c0]
test edx, edx
je 0x45edf8
add dword [edi + 0x10], 1
adc dword [edi + 0x14], 0
movzx esi, word [edi + ebx*8 + 0x4c6]
mov eax, dword [edx]
test eax, eax
je 0x45e4fa
mov ecx, eax
bswap ecx
test ecx, 0x1fc000
je 0x45e790
prefetcht0 byte [ecx]
jmp 0x45e4fc
lea eax, [esp + 0x24]
push ebx
push eax
call fcn.0048d320
add esp, 8
test al, al
je 0x45ddf1
jmp 0x45df33
lea eax, [edi + 0x20]
jmp 0x45de67
mov ecx, esi
mov esi, dword [ebp + 0x10]
push esi
push edi
call fcn.00460000
mov ebx, eax
lea ecx, [esp + 0x30]
call fcn.0045db40
test bl, bl
mov ebx, dword [ebp + 0xc]
je 0x45df28
cmp byte [esp + 0x14], 0
je 0x45f97f
push dword [ebp + 0x14]
push esi
push ebx
push ebx
call fcn.0048d2d0
add esp, 0x10
jmp 0x45f97f
push str....._base_allocatorpartition_allocatorpartition_root.h_1857__Check_failed:_raw_size___requested_size
call fcn.00460b40
xor ecx, ecx
dec byte [edi + ebx*8 + 0x4c4]
mov dword [edi + ebx*8 + 0x4c0], ecx
sub dword [edi], esi
mov eax, dword [esp + 0xc]
sub esi, dword [eax + 8]
mov eax, dword [ebp + 8]
movdqu xmm0, xmmword [edi + 0x4a0]
movd xmm1, esi
movq xmm1, xmm1
movaps xmm2, xmmword [0x561370]
shufps xmm2, xmm1, 0x84
paddq xmm2, xmm0
movdqu xmmword [edi + 0x4a0], xmm2
mov edi, dword [esp + 0xc]
mov ebx, dword [edi + 0xc]
add ebx, edx
test al, 2
jne 0x45ed74
cmp byte [edi + 6], 0
je 0x45f97f
test edx, 0xfff
je 0x45ee54
add edx, 0xfffffffc
mov dword [edx], 1
jmp 0x45f97f
xor ecx, ecx
dec byte [edi + ebx*8 + 0x4c4]
mov dword [edi + ebx*8 + 0x4c0], ecx
sub dword [edi], esi
mov eax, dword [esp + 0xc]
sub esi, dword [eax + 8]
mov eax, dword [ebp + 8]
movdqu xmm0, xmmword [edi + 0x4a0]
movd xmm1, esi
movq xmm1, xmm1
movaps xmm2, xmmword [0x561370]
shufps xmm2, xmm1, 0x84
paddq xmm2, xmm0
movdqu xmmword [edi + 0x4a0], xmm2
mov edi, dword [esp + 0xc]
mov ebx, dword [edi + 0xc]
add ebx, edx
test al, 2
jne 0x45edd8
cmp byte [edi + 6], 0
je 0x45e5e1
test edx, 0xfff
je 0x45ee77
add edx, 0xfffffffc
mov dword [edx], 1
mov dword [esp + 0x28], ebx
test byte [esp + 0x14], 1
je 0x45f97f
jmp 0x45ecde
lea eax, [esp + 0x28]
push dword [ebp + 0x14]
push esi
push dword [ebp + 8]
push eax
call fcn.0048d270
add esp, 0x10
test al, al
je 0x45df4f
mov ebx, dword [esp + 0x28]
jmp 0x45f996
mov dword [esp + 0x10], 0
shl eax, 5
mov ebx, eax
cmp dword [0x5a9910], 0
je 0x45e838
mov ecx, dword [0x5a990c]
jmp 0x45e860
xor ebx, ebx
movzx eax, di
shl eax, 5
mov dword [esp + 0x10], eax
cmp dword [0x5a9910], 0
je 0x45e9bc
mov ecx, dword [0x5a990c]
jmp 0x45e9e4
mov ecx, edi
call fcn.004604f0
mov ebx, eax
jmp 0x45e0ea
add dword [ebx + 0x28], 1
adc dword [ebx + 0x2c], 0
add dword [ebx + 0x18], 1
adc dword [ebx + 0x1c], 0
mov dword [esp + 0x10], ebx
shl eax, 5
mov ebx, eax
cmp dword [0x5a9910], 0
je 0x45e8fa
mov ecx, dword [0x5a990c]
jmp 0x45e922
cmp byte [esp + 0x28], 0
jne 0x45e1a9
push ecx
push 0
push ebx
mov dword [esp + 0x20], edx
call fcn.00536680
mov edx, dword [esp + 0x20]
mov eax, dword [ebp + 8]
add esp, 0xc
jmp 0x45e1a9
mov ecx, dword [esp + 0xc]
call fcn.004604f0
mov ebx, eax
cmp ebx, 2
jae 0x45dfee
jmp 0x45e641
add dword [ebx + 0x28], 1
adc dword [ebx + 0x2c], 0
add dword [ebx + 0x18], 1
adc dword [ebx + 0x1c], 0
shl edi, 5
cmp dword [0x5a9910], 0
je 0x45ea85
mov ecx, dword [0x5a990c]
jmp 0x45eaad
cmp byte [esp + 0x2f], 0
jne 0x45e225
push esi
push 0
push ebx
mov esi, edx
call fcn.00536680
mov edx, esi
mov eax, dword [ebp + 8]
add esp, 0xc
jmp 0x45e225
movdqu xmm0, xmmword [ebx + 0x18]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [ebx + 0x18], xmm0
mov ecx, ebx
push eax
call fcn.0045ceb0
mov eax, dword [esp + 0x14]
mov edx, dword [ebx + eax*8 + 0x4c0]
test edx, edx
jne 0x45e12d
jmp 0x45e681
movdqu xmm0, xmmword [ebx + 0x18]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [ebx + 0x18], xmm0
mov ecx, ebx
push edi
call fcn.0045ceb0
mov edx, dword [ebx + edi*8 + 0x4c0]
test edx, edx
jne 0x45e027
jmp 0x45e6f2
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x30], xmm0
lea edi, [esp + 0x30]
mov ecx, edi
push 0
push eax
push str.first
call fcn.0044ea50
push edi
call fcn.00403610
add esp, 4
mov ecx, esi
call fcn.0045d320
mov eax, edx
and eax, 0xffe00000
shr edx, 9
and edx, 0xff8
add edx, eax
add edx, 0x2000
mov eax, dword [ebp + 8]
mov dword [edx], 1
test ebx, ebx
jne 0x45f95f
jmp 0x45ddba
mov eax, edx
and eax, 0xffe00000
shr edx, 9
and edx, 0xff8
add edx, eax
add edx, 0x2000
mov eax, dword [ebp + 8]
jmp 0x45e241
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x30], xmm0
lea edi, [esp + 0x30]
mov ecx, edi
push 0
push eax
push str.first
call fcn.0044ea50
push edi
call fcn.00403610
add esp, 4
mov ecx, ebx
call fcn.0045d320
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.TryAcquireSRWLockExclusive
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a990c], eax
mov dword [0x5a9910], 1
mov eax, dword [esp + 0xc]
lea edx, [eax + ebx]
add edx, 0x48
mov dword [esp + 0x14], edx
lea edi, [eax + 0x40]
test ecx, ecx
mov dword [esp + 0x18], edi
je 0x45e8f0
call dword [section..00cfg]
push edi
call ecx
test al, al
jne 0x45e88f
mov ecx, dword [esp + 0x18]
call fcn.0045d630
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edi, dword [eax]
test edi, edi
je 0x45f362
mov edx, dword [esp + 0xc]
lea ecx, [edx + 0x48]
mov byte [esp + 0x28], 0
mov ebx, dword [ecx + ebx + 0xc]
mov dword [esp + 0x1c], ebx
sub ebx, dword [edx + 8]
mov dword [esp + 0x14], edi
mov edx, dword [edi]
test edx, edx
je 0x45eb52
mov ecx, edx
bswap ecx
mov esi, ecx
xor esi, dword [esp + 0x14]
cmp esi, 0x1fffff
ja 0x45f1b6
mov esi, ecx
and esi, 0x1fc000
je 0x45f1b6
prefetcht0 byte [ecx]
jmp 0x45eb54
xor eax, eax
lock bts dword [edi], eax
jb 0x45e886
jmp 0x45e88f
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.TryAcquireSRWLockExclusive
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a990c], eax
mov dword [0x5a9910], 1
mov eax, dword [esp + 0xc]
lea edx, [eax + ebx]
add edx, 0x48
mov dword [esp + 0x14], edx
lea edi, [eax + 0x40]
test ecx, ecx
mov dword [esp + 0x18], edi
je 0x45e9b2
call dword [section..00cfg]
push edi
call ecx
test al, al
jne 0x45e951
mov ecx, dword [esp + 0x18]
call fcn.0045d630
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edi, dword [eax]
test edi, edi
je 0x45f3d7
mov edx, dword [esp + 0xc]
lea ecx, [edx + 0x48]
mov byte [esp + 0x28], 0
mov ebx, dword [ecx + ebx + 0xc]
mov dword [esp + 0x1c], ebx
sub ebx, dword [edx + 8]
mov dword [esp + 0x14], edi
mov edx, dword [edi]
test edx, edx
je 0x45ebac
mov ecx, edx
bswap ecx
mov esi, ecx
xor esi, dword [esp + 0x14]
cmp esi, 0x1fffff
ja 0x45f1b6
mov esi, ecx
and esi, 0x1fc000
je 0x45f1b6
prefetcht0 byte [ecx]
jmp 0x45ebae
xor eax, eax
lock bts dword [edi], eax
jb 0x45e948
jmp 0x45e951
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.TryAcquireSRWLockExclusive
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a990c], eax
mov dword [0x5a9910], 1
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
add edx, eax
add edx, 0x48
mov dword [esp + 0x1c], edx
lea edi, [eax + 0x40]
test ecx, ecx
mov dword [esp + 0x18], edi
je 0x45ea7b
call dword [section..00cfg]
push edi
call ecx
test al, al
jne 0x45ea16
mov ecx, dword [esp + 0x18]
call fcn.0045d630
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov edi, dword [eax]
test edi, edi
je 0x45f44c
mov edx, dword [esp + 0xc]
lea ecx, [edx + 0x48]
mov byte [esp + 0x2f], 0
mov esi, dword [esp + 0x10]
mov esi, dword [ecx + esi + 0xc]
mov dword [esp + 0x1c], esi
sub esi, dword [edx + 8]
mov dword [esp + 0x10], edi
mov edx, dword [edi]
test edx, edx
je 0x45ec06
mov ecx, edx
bswap ecx
mov edi, ecx
xor edi, dword [esp + 0x10]
cmp edi, 0x1fffff
ja 0x45f1b6
mov edi, ecx
and edi, 0x1fc000
je 0x45f1b6
prefetcht0 byte [ecx]
jmp 0x45ec08
xor eax, eax
lock bts dword [edi], eax
jb 0x45ea0d
jmp 0x45ea16
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.TryAcquireSRWLockExclusive
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a990c], eax
mov dword [0x5a9910], 1
mov eax, dword [esp + 0xc]
lea edx, [eax + edi]
add edx, 0x48
mov dword [esp + 0x10], edx
add eax, 0x40
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x45eb44
call dword [section..00cfg]
push dword [esp + 0x18]
call ecx
test al, al
jne 0x45eadf
mov ecx, dword [esp + 0x18]
call fcn.0045d630
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
test eax, eax
je 0x45f4c1
mov edx, dword [esp + 0xc]
lea ecx, [edx + 0x48]
mov byte [esp + 0x2f], 0
mov esi, dword [ecx + edi + 0xc]
mov dword [esp + 0x20], esi
sub esi, dword [edx + 8]
mov dword [esp + 0x10], eax
mov edx, dword [eax]
test edx, edx
je 0x45ec60
mov ecx, edx
bswap ecx
mov edi, ecx
xor edi, dword [esp + 0x10]
cmp edi, 0x1fffff
ja 0x45f536
mov edi, ecx
and edi, 0x1fc000
je 0x45f536
prefetcht0 byte [ecx]
jmp 0x45ec62
xor eax, eax
mov ecx, dword [esp + 0x18]
lock bts dword [ecx], eax
jb 0x45ead6
jmp 0x45eadf
xor ecx, ecx
mov dword [eax], ecx
mov ecx, dword [eax + 0xc]
lea edx, [ecx + 2]
and edx, 0x3ffe
and ecx, 0xffffc001
or ecx, edx
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x117c]
add ecx, dword [eax + 0xc]
mov eax, dword [edx + 0x1180]
mov dword [edx + 0x117c], ecx
cmp eax, ecx
cmova ecx, eax
mov dword [edx + 0x1180], ecx
cmp dword [0x5a97a8], 0
je 0x45f78b
mov ecx, dword [0x5a97a4]
jmp 0x45f7b3
xor ecx, ecx
mov dword [eax], ecx
mov ecx, dword [eax + 0xc]
lea edx, [ecx + 2]
and edx, 0x3ffe
and ecx, 0xffffc001
or ecx, edx
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x117c]
add ecx, dword [eax + 0xc]
mov eax, dword [edx + 0x1180]
mov dword [edx + 0x117c], ecx
cmp eax, ecx
cmova ecx, eax
mov dword [edx + 0x1180], ecx
cmp dword [0x5a97a8], 0
je 0x45f7ed
mov ecx, dword [0x5a97a4]
jmp 0x45f815
xor ecx, ecx
mov dword [eax], ecx
mov ecx, dword [eax + 0xc]
lea edx, [ecx + 2]
and edx, 0x3ffe
and ecx, 0xffffc001
or ecx, edx
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x117c]
add ecx, dword [eax + 0xc]
mov eax, dword [edx + 0x1180]
mov dword [edx + 0x117c], ecx
cmp eax, ecx
cmova ecx, eax
mov dword [edx + 0x1180], ecx
cmp dword [0x5a97a8], 0
je 0x45f882
mov ecx, dword [0x5a97a4]
jmp 0x45f8aa
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov dword [eax], ecx
mov ecx, dword [eax + 0xc]
lea edx, [ecx + 2]
and edx, 0x3ffe
and ecx, 0xffffc001
or ecx, edx
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x117c]
add ecx, dword [eax + 0xc]
mov eax, dword [edx + 0x1180]
mov dword [edx + 0x117c], ecx
cmp eax, ecx
cmova ecx, eax
mov dword [edx + 0x1180], ecx
cmp dword [0x5a97a8], 0
je 0x45f8e4
mov ecx, dword [0x5a97a4]
jmp 0x45f90c
mov ecx, eax
lea eax, [esp + 0x28]
push dword [ebp + 0x14]
push esi
push ecx
push eax
call fcn.0048d270
add esp, 0x10
test al, al
je 0x45e270
mov ebx, dword [esp + 0x28]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
call fcn.0048d250
add esp, 0xc
mov ebx, dword [esp + 0x28]
jmp 0x45f97f
xor edi, edi
shl ebx, 5
cmp dword [0x5a9910], 0
je 0x45ee94
mov ecx, dword [0x5a990c]
jmp 0x45eebc
xor edi, edi
movzx ebx, bx
shl ebx, 5
cmp dword [0x5a9910], 0
je 0x45f02e
mov ecx, dword [0x5a990c]
jmp 0x45f056
mov ecx, dword [esp + 0xc]
call fcn.004604f0
mov edi, eax
cmp edi, 2
jae 0x45e430
jmp 0x45ecf8
add dword [edi + 0x28], 1
adc dword [edi + 0x2c], 0
add dword [edi + 0x18], 1
adc dword [edi + 0x1c], 0
shl ebx, 5
cmp dword [0x5a9910], 0
je 0x45ef61
mov ecx, dword [0x5a990c]
jmp 0x45ef89
cmp byte [esp + 0x28], 0
jne 0x45e54e
push esi
push 0
push ebx
mov esi, edx
call fcn.00536680
mov edx, esi
add esp, 0xc
jmp 0x45e54e
mov ecx, dword [esp + 0xc]
call fcn.004604f0
mov edi, eax
cmp edi, 2
jae 0x45e317
jmp 0x45ed15
add dword [edi + 0x28], 1
adc dword [edi + 0x2c], 0
add dword [edi + 0x18], 1
adc dword [edi + 0x1c], 0
shl ebx, 5
cmp dword [0x5a9910], 0
je 0x45f0fb
mov ecx, dword [0x5a990c]
jmp 0x45f123
cmp byte [esp + 0x24], 0
jne 0x45e5c6
push esi
push 0
push ebx
mov esi, edx
call fcn.00536680
mov edx, esi
add esp, 0xc
jmp 0x45e5c6
movdqu xmm0, xmmword [edi + 0x18]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [edi + 0x18], xmm0
mov ecx, edi
push ebx
call fcn.0045ceb0
mov edx, dword [edi + ebx*8 + 0x4c0]
test edx, edx
jne 0x45e466
jmp 0x45ed59
movdqu xmm0, xmmword [edi + 0x18]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [edi + 0x18], xmm0
mov ecx, edi
push ebx
call fcn.0045ceb0
mov edx, dword [edi + ebx*8 + 0x4c0]
test edx, edx
jne 0x45e350
jmp 0x45edbd
mov eax, edx
and eax, 0xffe00000
shr edx, 9
and edx, 0xff8
add edx, eax
add edx, 0x2000
mov dword [edx], 1
jmp 0x45f97f
mov eax, edx
and eax, 0xffe00000
shr edx, 9
and edx, 0xff8
add edx, eax
add edx, 0x2000
jmp 0x45e5db
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.TryAcquireSRWLockExclusive
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a990c], eax
mov dword [0x5a9910], 1
mov eax, dword [esp + 0xc]
lea edx, [eax + ebx]
add edx, 0x48
mov dword [esp + 0x18], edx
add eax, 0x40
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x45ef53
call dword [section..00cfg]
push dword [esp + 0x10]
call ecx
test al, al
jne 0x45eeee
mov ecx, dword [esp + 0x10]
call fcn.0045d630
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x45f594
mov edx, dword [esp + 0xc]
lea ecx, [edx + 0x48]
mov byte [esp + 0x28], 0
mov esi, dword [ecx + ebx + 0xc]
mov dword [esp + 0x18], esi
sub esi, dword [edx + 8]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
test edx, edx
je 0x45f1fa
mov ecx, edx
bswap ecx
mov ebx, ecx
xor ebx, dword [esp + 0x14]
cmp ebx, 0x1fffff
ja 0x45f565
mov ebx, ecx
and ebx, 0x1fc000
je 0x45f565
prefetcht0 byte [ecx]
jmp 0x45f1fc
xor eax, eax
mov ecx, dword [esp + 0x10]
lock bts dword [ecx], eax
jb 0x45eee5
jmp 0x45eeee
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.TryAcquireSRWLockExclusive
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a990c], eax
mov dword [0x5a9910], 1
mov eax, dword [esp + 0xc]
lea edx, [eax + ebx]
add edx, 0x48
mov dword [esp + 0x18], edx
add eax, 0x40
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x45f020
call dword [section..00cfg]
push dword [esp + 0x10]
call ecx
test al, al
jne 0x45efbb
mov ecx, dword [esp + 0x10]
call fcn.0045d630
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x45f609
mov edx, dword [esp + 0xc]
lea ecx, [edx + 0x48]
mov byte [esp + 0x28], 0
mov esi, dword [ecx + ebx + 0xc]
mov dword [esp + 0x18], esi
sub esi, dword [edx + 8]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
test edx, edx
je 0x45f254
mov ecx, edx
bswap ecx
mov ebx, ecx
xor ebx, dword [esp + 0x14]
cmp ebx, 0x1fffff
ja 0x45f565
mov ebx, ecx
and ebx, 0x1fc000
je 0x45f565
prefetcht0 byte [ecx]
jmp 0x45f256
xor eax, eax
mov ecx, dword [esp + 0x10]
lock bts dword [ecx], eax
jb 0x45efb2
jmp 0x45efbb
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.TryAcquireSRWLockExclusive
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a990c], eax
mov dword [0x5a9910], 1
mov eax, dword [esp + 0xc]
lea edx, [eax + ebx]
add edx, 0x48
mov dword [esp + 0x1c], edx
add eax, 0x40
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x45f0ed
call dword [section..00cfg]
push dword [esp + 0x18]
call ecx
test al, al
jne 0x45f088
mov ecx, dword [esp + 0x18]
call fcn.0045d630
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x45f67e
mov edx, dword [esp + 0xc]
lea ecx, [edx + 0x48]
mov byte [esp + 0x24], 0
mov esi, dword [ecx + ebx + 0xc]
mov dword [esp + 0x1c], esi
sub esi, dword [edx + 8]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
test edx, edx
je 0x45f2ae
mov ecx, edx
bswap ecx
mov ebx, ecx
xor ebx, dword [esp + 0x10]
cmp ebx, 0x1fffff
ja 0x45f1b6
mov ebx, ecx
and ebx, 0x1fc000
je 0x45f1b6
prefetcht0 byte [ecx]
jmp 0x45f2b0
xor eax, eax
mov ecx, dword [esp + 0x18]
lock bts dword [ecx], eax
jb 0x45f07f
jmp 0x45f088
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.TryAcquireSRWLockExclusive
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a990c], eax
mov dword [0x5a9910], 1
mov eax, dword [esp + 0xc]
lea edx, [eax + ebx]
add edx, 0x48
mov dword [esp + 0x1c], edx
add eax, 0x40
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x45f1e5
call dword [section..00cfg]
push dword [esp + 0x18]
call ecx
test al, al
jne 0x45f159
mov ecx, dword [esp + 0x18]
call fcn.0045d630
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x45f6f3
mov edx, dword [esp + 0xc]
lea ecx, [edx + 0x48]
mov byte [esp + 0x24], 0
mov esi, dword [ecx + ebx + 0xc]
mov dword [esp + 0x1c], esi
sub esi, dword [edx + 8]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
test edx, edx
je 0x45f308
mov ecx, edx
bswap ecx
mov ebx, ecx
xor ebx, dword [esp + 0x10]
cmp ebx, 0x1fffff
ja 0x45f1b6
mov ebx, ecx
and ebx, 0x1fc000
je 0x45f1b6
prefetcht0 byte [ecx]
jmp 0x45f30a
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x30], xmm0
lea esi, [esp + 0x30]
mov ecx, esi
push 0
push edx
push str.first
call fcn.0044ea50
push esi
call fcn.00403610
add esp, 4
mov ecx, dword [esp + 0x1c]
call fcn.0045d320
xor eax, eax
mov ecx, dword [esp + 0x18]
lock bts dword [ecx], eax
jb 0x45f150
jmp 0x45f159
xor ecx, ecx
mov dword [eax], ecx
mov ecx, dword [eax + 0xc]
lea edx, [ecx + 2]
and edx, 0x3ffe
and ecx, 0xffffc001
or ecx, edx
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x117c]
add ecx, dword [eax + 0xc]
mov eax, dword [edx + 0x1180]
mov dword [edx + 0x117c], ecx
cmp eax, ecx
cmova ecx, eax
mov dword [edx + 0x1180], ecx
cmp dword [0x5a97a8], 0
je 0x45f9ed
mov ecx, dword [0x5a97a4]
jmp 0x45fa15
xor ecx, ecx
mov dword [eax], ecx
mov ecx, dword [eax + 0xc]
lea edx, [ecx + 2]
and edx, 0x3ffe
and ecx, 0xffffc001
or ecx, edx
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x117c]
add ecx, dword [eax + 0xc]
mov eax, dword [edx + 0x1180]
mov dword [edx + 0x117c], ecx
cmp eax, ecx
cmova ecx, eax
mov dword [edx + 0x1180], ecx
cmp dword [0x5a97a8], 0
je 0x45fa57
mov ecx, dword [0x5a97a4]
jmp 0x45fa7f
xor ecx, ecx
mov dword [eax], ecx
mov ecx, dword [eax + 0xc]
lea edx, [ecx + 2]
and edx, 0x3ffe
and ecx, 0xffffc001
or ecx, edx
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x117c]
add ecx, dword [eax + 0xc]
mov eax, dword [edx + 0x1180]
mov dword [edx + 0x117c], ecx
cmp eax, ecx
cmova ecx, eax
mov dword [edx + 0x1180], ecx
cmp dword [0x5a97a8], 0
je 0x45fadf
mov ecx, dword [0x5a97a4]
jmp 0x45fb07
xor ecx, ecx
mov dword [eax], ecx
mov ecx, dword [eax + 0xc]
lea edx, [ecx + 2]
and edx, 0x3ffe
and ecx, 0xffffc001
or ecx, edx
mov dword [eax + 0xc], ecx
mov eax, dword [eax + 8]
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x117c]
add ecx, dword [eax + 0xc]
mov eax, dword [edx + 0x1180]
mov dword [edx + 0x117c], ecx
cmp eax, ecx
cmova ecx, eax
mov dword [edx + 0x1180], ecx
cmp dword [0x5a97a8], 0
je 0x45fb49
mov ecx, dword [0x5a97a4]
jmp 0x45fb71
lea eax, [esp + 0x28]
mov ecx, dword [esp + 0x14]
push eax
push 0x4000
push esi
push dword [ebp + 8]
push dword [esp + 0x1c]
call fcn.0048c1a0
mov dword [esp + 0x14], eax
test eax, eax
je 0x45f771
mov ecx, dword [esp + 0x14]
mov eax, ecx
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
lea edx, [ecx + eax]
movzx eax, byte [ecx + eax + 0x101e]
and eax, 0x3f
shl eax, 5
sub edx, eax
lea eax, [edx + 0x1000]
test byte [edx + 0x100f], 8
jne 0x45f9b3
mov ecx, dword [eax + 8]
add ecx, 0xc
mov ebx, dword [ecx]
mov ecx, dword [esp + 0xc]
sub ebx, dword [ecx + 8]
jmp 0x45eb6d
lea eax, [esp + 0x28]
mov ecx, dword [esp + 0x14]
push eax
push 0x4000
push esi
push dword [ebp + 8]
push dword [esp + 0x1c]
call fcn.0048c1a0
mov dword [esp + 0x14], eax
test eax, eax
je 0x45f7d3
mov ecx, dword [esp + 0x14]
mov eax, ecx
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
lea edx, [ecx + eax]
movzx eax, byte [ecx + eax + 0x101e]
and eax, 0x3f
shl eax, 5
sub edx, eax
lea eax, [edx + 0x1000]
test byte [edx + 0x100f], 8
jne 0x45f9bb
mov ecx, dword [eax + 8]
add ecx, 0xc
mov ebx, dword [ecx]
mov ecx, dword [esp + 0xc]
sub ebx, dword [ecx + 8]
jmp 0x45ebc7
lea eax, [esp + 0x2f]
mov ecx, dword [esp + 0x1c]
push eax
push 0x4000
push esi
push dword [ebp + 8]
push dword [esp + 0x1c]
call fcn.0048c1a0
mov dword [esp + 0x10], eax
test eax, eax
je 0x45f868
mov ecx, dword [esp + 0x10]
mov eax, ecx
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
lea edx, [ecx + eax]
movzx eax, byte [ecx + eax + 0x101e]
and eax, 0x3f
shl eax, 5
sub edx, eax
lea eax, [edx + 0x1000]
test byte [edx + 0x100f], 8
jne 0x45f9c3
mov ecx, dword [eax + 8]
add ecx, 0xc
mov esi, dword [ecx]
mov ecx, dword [esp + 0xc]
sub esi, dword [ecx + 8]
jmp 0x45ec21
lea eax, [esp + 0x2f]
mov ecx, dword [esp + 0x10]
push eax
push 0x4000
push esi
push dword [ebp + 8]
push dword [esp + 0x1c]
call fcn.0048c1a0
mov dword [esp + 0x10], eax
test eax, eax
je 0x45f8ca
mov ecx, dword [esp + 0x10]
mov eax, ecx
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
lea edx, [ecx + eax]
movzx eax, byte [ecx + eax + 0x101e]
and eax, 0x3f
shl eax, 5
sub edx, eax
lea eax, [edx + 0x1000]
test byte [edx + 0x100f], 8
jne 0x45f9cb
mov ecx, dword [eax + 8]
add ecx, 0xc
mov esi, dword [ecx]
mov ecx, dword [esp + 0xc]
sub esi, dword [ecx + 8]
jmp 0x45ec7f
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x30], xmm0
lea esi, [esp + 0x30]
mov ecx, esi
push 0
push edx
push str.first
call fcn.0044ea50
push esi
call fcn.00403610
add esp, 4
mov ecx, dword [esp + 0x20]
call fcn.0045d320
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x30], xmm0
lea esi, [esp + 0x30]
mov ecx, esi
push 0
push edx
push str.first
call fcn.0044ea50
push esi
call fcn.00403610
add esp, 4
mov ecx, dword [esp + 0x18]
call fcn.0045d320
lea eax, [esp + 0x28]
mov ecx, dword [esp + 0x18]
push eax
push 0x4000
push esi
push dword [ebp + 8]
push dword [esp + 0x1c]
call fcn.0048c1a0
mov dword [esp + 0x14], eax
test eax, eax
je 0x45f9d3
mov ecx, dword [esp + 0x14]
mov eax, ecx
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
lea edx, [ecx + eax]
movzx eax, byte [ecx + eax + 0x101e]
and eax, 0x3f
shl eax, 5
sub edx, eax
lea eax, [edx + 0x1000]
test byte [edx + 0x100f], 8
jne 0x45fa35
mov ecx, dword [eax + 8]
add ecx, 0xc
mov esi, dword [ecx]
mov ecx, dword [esp + 0xc]
sub esi, dword [ecx + 8]
jmp 0x45f215
lea eax, [esp + 0x28]
mov ecx, dword [esp + 0x18]
push eax
push 0x4000
push esi
push dword [ebp + 8]
push dword [esp + 0x1c]
call fcn.0048c1a0
mov dword [esp + 0x14], eax
test eax, eax
je 0x45fa3d
mov ecx, dword [esp + 0x14]
mov eax, ecx
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
lea edx, [ecx + eax]
movzx eax, byte [ecx + eax + 0x101e]
and eax, 0x3f
shl eax, 5
sub edx, eax
lea eax, [edx + 0x1000]
test byte [edx + 0x100f], 8
jne 0x45fabd
mov ecx, dword [eax + 8]
add ecx, 0xc
mov esi, dword [ecx]
mov ecx, dword [esp + 0xc]
sub esi, dword [ecx + 8]
jmp 0x45f26f
lea eax, [esp + 0x24]
mov ecx, dword [esp + 0x1c]
push eax
push 0x4000
push esi
push dword [ebp + 8]
push dword [esp + 0x1c]
call fcn.0048c1a0
mov dword [esp + 0x10], eax
test eax, eax
je 0x45fac5
mov ecx, dword [esp + 0x10]
mov eax, ecx
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
lea edx, [ecx + eax]
movzx eax, byte [ecx + eax + 0x101e]
and eax, 0x3f
shl eax, 5
sub edx, eax
lea eax, [edx + 0x1000]
test byte [edx + 0x100f], 8
jne 0x45fb27
mov ecx, dword [eax + 8]
add ecx, 0xc
mov esi, dword [ecx]
mov ecx, dword [esp + 0xc]
sub esi, dword [ecx + 8]
jmp 0x45f2c9
lea eax, [esp + 0x24]
mov ecx, dword [esp + 0x1c]
push eax
push 0x4000
push esi
push dword [ebp + 8]
push dword [esp + 0x1c]
call fcn.0048c1a0
mov dword [esp + 0x10], eax
test eax, eax
je 0x45fb2f
mov ecx, dword [esp + 0x10]
mov eax, ecx
and eax, 0xffe00000
shr ecx, 9
and ecx, 0xfe0
lea edx, [ecx + eax]
movzx eax, byte [ecx + eax + 0x101e]
and eax, 0x3f
shl eax, 5
sub edx, eax
lea eax, [edx + 0x1000]
test byte [edx + 0x100f], 8
jne 0x45fbaf
mov ecx, dword [eax + 8]
add ecx, 0xc
mov esi, dword [ecx]
mov ecx, dword [esp + 0xc]
sub esi, dword [ecx + 8]
jmp 0x45f323
mov dword [esp + 0x10], ebx
jmp 0x45e622
mov dword [esp + 0x14], 0
mov ebx, 0xffffffff
cmp dword [0x5a97a8], 0
jne 0x45eba1
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x560f2f
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a97a4], eax
mov dword [0x5a97a8], 1
test ecx, ecx
je 0x45f7c7
call dword [section..00cfg]
push dword [esp + 0x18]
call ecx
xor eax, eax
jmp 0x45f831
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0x18]
xchg dword [edx], ecx
jmp 0x45f831
mov dword [esp + 0x14], 0
mov ebx, 0xffffffff
cmp dword [0x5a97a8], 0
jne 0x45ebfb
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x560f2f
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a97a4], eax
mov dword [0x5a97a8], 1
test ecx, ecx
je 0x45f827
call dword [section..00cfg]
push dword [esp + 0x18]
call ecx
jmp 0x45f82f
xor eax, eax
mov ecx, dword [esp + 0x18]
xchg dword [ecx], eax
mov al, 1
mov esi, dword [ebp + 0x10]
mov edx, dword [esp + 0x14]
test edx, edx
je 0x45f856
test al, al
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0xc]
mov ecx, ebx
mov ebx, dword [esp + 0x10]
je 0x45e19c
jmp 0x45e175
xor ebx, ebx
mov eax, dword [ebp + 8]
test ebx, ebx
jne 0x45f95f
jmp 0x45ddba
mov dword [esp + 0x10], 0
mov esi, 0xffffffff
cmp dword [0x5a97a8], 0
jne 0x45ec55
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x560f2f
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a97a4], eax
mov dword [0x5a97a8], 1
test ecx, ecx
je 0x45f8be
call dword [section..00cfg]
push dword [esp + 0x18]
call ecx
xor eax, eax
jmp 0x45f928
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0x18]
xchg dword [edx], ecx
jmp 0x45f928
mov dword [esp + 0x10], 0
mov esi, 0xffffffff
cmp dword [0x5a97a8], 0
jne 0x45ecb3
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x560f2f
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a97a4], eax
mov dword [0x5a97a8], 1
test ecx, ecx
je 0x45f91e
call dword [section..00cfg]
push dword [esp + 0x18]
call ecx
jmp 0x45f926
xor eax, eax
mov ecx, dword [esp + 0x18]
xchg dword [ecx], eax
mov al, 1
mov edx, dword [esp + 0x10]
test edx, edx
je 0x45f944
test al, al
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0xc]
je 0x45e218
jmp 0x45e1f1
xor ebx, ebx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x28], ebx
test byte [esp + 0x14], 1
jne 0x45f996
test ebx, ebx
je 0x45ddba
mov eax, dword [esp + 0x24]
cmp eax, esi
cmovb esi, eax
push esi
mov esi, dword [ebp + 0xc]
push esi
push ebx
call fcn.00536100
add esp, 0xc
push esi
call fcn.0045fbc0
add esp, 4
mov ecx, dword [esp + 0x48]
xor ecx, ebp
call fcn.005327f1
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
push dword [ebp + 0x14]
push esi
push ebx
call fcn.0048d250
mov eax, dword [ebp + 8]
add esp, 0xc
mov ebx, dword [esp + 0x28]
test ebx, ebx
jne 0x45f95f
jmp 0x45ddba
lea ecx, [eax + 0x20]
jmp 0x45f3c9
lea ecx, [eax + 0x20]
jmp 0x45f43e
lea ecx, [eax + 0x20]
jmp 0x45f4b3
lea ecx, [eax + 0x20]
jmp 0x45f528
mov dword [esp + 0x14], 0
mov esi, 0xffffffff
cmp dword [0x5a97a8], 0
jne 0x45f249
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x560f2f
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a97a4], eax
mov dword [0x5a97a8], 1
test ecx, ecx
je 0x45fa29
call dword [section..00cfg]
push dword [esp + 0x10]
call ecx
xor eax, eax
jmp 0x45fa9b
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0x10]
xchg dword [edx], ecx
jmp 0x45fa9b
lea ecx, [eax + 0x20]
jmp 0x45f5fb
mov dword [esp + 0x14], 0
mov esi, 0xffffffff
cmp dword [0x5a97a8], 0
jne 0x45f2a3
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x560f2f
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a97a4], eax
mov dword [0x5a97a8], 1
test ecx, ecx
je 0x45fa91
call dword [section..00cfg]
push dword [esp + 0x10]
call ecx
jmp 0x45fa99
xor eax, eax
mov ecx, dword [esp + 0x10]
xchg dword [ecx], eax
mov al, 1
cmp dword [esp + 0x14], 0
je 0x45fab6
test al, al
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x14]
je 0x45e53d
jmp 0x45e516
xor ebx, ebx
jmp 0x45f97f
lea ecx, [eax + 0x20]
jmp 0x45f670
mov dword [esp + 0x10], 0
mov esi, 0xffffffff
cmp dword [0x5a97a8], 0
jne 0x45f2fd
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x560f2f
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a97a4], eax
mov dword [0x5a97a8], 1
test ecx, ecx
je 0x45fb1b
call dword [section..00cfg]
push dword [esp + 0x18]
call ecx
xor eax, eax
jmp 0x45fb8d
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0x18]
xchg dword [edx], ecx
jmp 0x45fb8d
lea ecx, [eax + 0x20]
jmp 0x45f6e5
mov dword [esp + 0x10], 0
mov esi, 0xffffffff
cmp dword [0x5a97a8], 0
jne 0x45f357
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x560f2f
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a97a4], eax
mov dword [0x5a97a8], 1
test ecx, ecx
je 0x45fb83
call dword [section..00cfg]
push dword [esp + 0x18]
call ecx
jmp 0x45fb8b
xor eax, eax
mov ecx, dword [esp + 0x18]
xchg dword [ecx], eax
mov al, 1
cmp dword [esp + 0x10], 0
je 0x45fba8
test al, al
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x10]
je 0x45e5b5
jmp 0x45e58e
xor ebx, ebx
jmp 0x45e5e1
lea ecx, [eax + 0x20]
jmp 0x45f75a