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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffc0
sub esp, 0x200
mov edi, dword [ebp + 0xc]
push edi
call fcn.0044bca0
add esp, 4
cmp eax, 0xff
mov ebx, 0xff
mov dword [esp + 0xb0], eax
mov dword [esp + 0xcc], 0
lea esi, [esp + 0x100]
cmovb ebx, eax
movzx eax, byte [edi + 0x2d]
mov dword [esp + 0xd0], ebx
mov byte [esp + 0x2f], al
lea eax, [esp + 0x2f]
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xc8]
push eax
push esi
call fcn.0044ba40
add esp, 8
mov eax, dword [esp + 0x100]
mov edi, dword [esp + 0x110]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x114]
push ebx
push 0
push esi
mov esi, eax
call fcn.0044b910
add esp, 0xc
mov eax, dword [esp + 0x108]
movsd xmm0, qword [esp + 0x100]
mov edx, 0x1c
xor ecx, ecx
mov dword [esp + 0x1d8], eax
mov eax, esi
movsd qword [esp + 0x1d0], xmm0
mul edx
jo 0x44869a
cmp eax, 0x7ffffffc
ja 0x44869a
mov ecx, dword [esp + 0x10c]
mov ebx, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
test eax, eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], edx
je 0x447993
mov ecx, dword [0x59fb24]
movzx ecx, byte [ecx]
push 4
mov dword [esp + 0x94], eax
push eax
call fcn.0040cd10
add esp, 8
test eax, eax
je 0x44868e
mov ecx, esi
jmp 0x44799a
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x100], edi
lea edx, [edi + esi*8]
mov dword [esp + 0x104], edi
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], 0
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], eax
lea eax, [esp + 0xc8]
mov dword [esp + 0x108], edi
mov dword [esp + 0x10c], edx
push eax
lea eax, [esp + 0x104]
push eax
call fcn.0044cc90
add esp, 8
movsd xmm0, qword [esp + 0x38]
mov eax, dword [esp + 0x40]
cmp dword [esp + 0xb0], 0
movsd qword [esp + 0x1e0], xmm0
mov dword [esp + 0x1e8], eax
je 0x447a6c
mov eax, dword [0x59fb24]
mov esi, dword [esp + 0x14]
movzx eax, byte [eax]
shl esi, 6
push 0x40
push esi
call fcn.0040cd10
add esp, 8
test eax, eax
je 0x4486a1
mov ebx, eax
xor eax, eax
nop
mov dword [ebx + eax], 0
mov word [ebx + eax + 4], 0
mov byte [ebx + eax + 6], 0
add eax, 0x40
cmp esi, eax
jne 0x447a50
jmp 0x447a71
mov ebx, 0x40
mov edi, dword [0x59fb24]
movzx eax, byte [edi]
push 4
push 0x2f8
call fcn.0040cd10
add esp, 8
test eax, eax
je 0x448676
mov esi, eax
push 0x2f8
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x1d8]
movsd xmm0, qword [esp + 0x1d0]
mov dword [esp + 0xd2], eax
mov eax, dword [ebp + 0xc]
movsd qword [esp + 0xca], xmm0
movsd xmm1, qword [eax + 0x1c]
movsd xmm0, qword [eax + 0xc]
mov dword [eax + 0xc], 0
mov dword [eax + 0x1c], 0
movsd xmm2, qword [eax + 0x24]
mov dword [eax + 0x24], 0
mov eax, dword [esp + 0x1e8]
movaps xmmword [esp + 0xa0], xmm1
movsd xmm1, qword [esp + 0x1e0]
movaps xmmword [esp + 0xb0], xmm0
movaps xmmword [esp + 0x90], xmm2
movsd xmm2, qword [esp + 0xc8]
mov dword [esp + 0x40], eax
movsd qword [esp + 0x38], xmm1
movsd xmm1, qword [esp + 0xce]
movsd qword [esp + 0x106], xmm1
movsd qword [esp + 0x100], xmm2
movzx eax, byte [edi]
push 0x40
push 0x140
call fcn.0040cd10
add esp, 8
test eax, eax
je 0x448682
movsd xmm0, qword [esp + 0x100]
mov dword [eax], 1
mov dword [eax + 4], 1
mov dword [eax + 0x40], 0
mov dword [eax + 0x44], esi
mov dword [eax + 0x80], 0
mov dword [eax + 0x84], esi
mov word [eax + 0xc0], 0
movsd xmm1, qword [esp + 0x106]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], eax
movsd qword [eax + 0xc2], xmm0
movaps xmm0, xmmword [esp + 0xb0]
movsd qword [eax + 0xc8], xmm1
unpcklpd xmm0, xmmword [esp + 0xa0]
movaps xmmword [eax + 0xd0], xmm0
movaps xmm0, xmmword [esp + 0x90]
movlps qword [eax + 0xe0], xmm0
mov dword [eax + 0xe8], 1
mov dword [eax + 0xec], ecx
mov dword [eax + 0xf0], ebx
mov dword [eax + 0xf4], ecx
mov ecx, dword [esp + 0x40]
movsd xmm0, qword [esp + 0x38]
mov dword [eax + 0xf8], 0
mov ebx, dword [esp + 0x1c]
mov dword [eax + 0x104], ecx
movsd qword [eax + 0xfc], xmm0
mov eax, dword [esp + 0x18]
mov ecx, edx
shl ecx, 4
test edx, edx
mov dword [esp + 0xa0], ecx
lea esi, [eax + ecx]
mov ecx, dword [esp + 0x28]
mov edi, eax
lea ecx, [ebx + ecx*8]
mov dword [esp + 0xb0], ecx
je 0x447c5c
movzx ebx, byte [eax + 0xc]
lea edi, [eax + 0x10]
cmp bl, 2
jne 0x447c8c
mov ebx, dword [esp + 0x1c]
sub esi, edi
je 0x44841b
shr esi, 4
jmp 0x447c7a
add edi, 0x10
dec esi
je 0x448417
mov eax, dword [edi]
lock dec dword [eax]
jne 0x447c70
push edi
call fcn.0044cf60
add esp, 4
jmp 0x447c70
movsd xmm0, qword [eax]
mov ecx, eax
mov eax, dword [eax + 8]
cmp dword [esp + 0x28], 0
lea edx, [esp + 0x10d]
mov dword [esp + 0x108], eax
movsd qword [esp + 0x100], xmm0
mov byte [esp + 0x10c], bl
movzx eax, word [ecx + 0xd]
movzx ecx, byte [ecx + 0xf]
mov byte [edx + 2], cl
mov word [edx], ax
je 0x447d60
mov eax, dword [esp + 0x1c]
movsd xmm0, qword [esp + 0x100]
mov ecx, dword [eax]
mov bh, byte [eax + 4]
mov eax, dword [esp + 0x108]
movsd qword [esp + 0x80], xmm0
mov dword [esp + 0x88], eax
movzx eax, word [edx]
mov dword [esp + 0x70], ecx
mov ecx, dword [ebp + 0xc]
mov word [esp + 0x20], ax
movzx eax, byte [edx + 2]
mov byte [esp + 0x22], al
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x447d8d
mov ecx, dword [ecx + 0x18]
push 0
push eax
lea eax, [esp + 0x108]
push eax
call dword [ecx + 0x10]
mov ecx, dword [ebp + 0xc]
add esp, 0xc
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0x108]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x74], edx
mov dword [esp + 0x90], eax
movsd xmm0, qword [ecx]
mov ecx, dword [esp + 0x14]
lock inc dword [ecx]
jg 0x447da6
jmp 0x4486a9
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x100]
lock dec dword [eax]
jne 0x4485b4
lea eax, [esp + 0x100]
push eax
call fcn.0044cf60
add esp, 4
mov eax, dword [esp + 0x18]
jmp 0x447c5c
mov dword [esp + 0x24], 0x80000000
movsd xmm0, qword [ecx]
mov ecx, dword [esp + 0x14]
lock inc dword [ecx]
jle 0x4486a9
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x54]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x88]
movlps qword [esp + 0x38], xmm0
movsd xmm0, qword [esp + 0x80]
mov dword [edx + 8], eax
movzx eax, word [esp + 0x20]
movsd qword [edx], xmm0
mov byte [esp + 0x60], bl
mov word [edx + 0xd], ax
movzx eax, byte [esp + 0x22]
mov byte [edx + 0xf], al
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov byte [esp + 0x50], bh
mov dword [esp + 0x64], ecx
mov ecx, dword [ebp + 0xc]
lea ebx, [edx + 8]
mov dword [esp + 0x68], 0
cmp byte [ecx + 0x2c], 0
je 0x447ea2
xor ecx, ecx
call fcn.00449460
test eax, eax
je 0x4486ab
cmp dword [eax], 0
je 0x448051
mov eax, dword [ebp + 8]
neg dword [esp + 0x24]
mov byte [eax], 5
jo 0x447e5d
mov eax, dword [esp + 0x40]
test eax, eax
je 0x447e5d
push 1
push eax
push dword [esp + 0x4c]
call fcn.0040cd20
add esp, 0xc
mov eax, dword [esp + 0x54]
lock dec dword [eax]
je 0x448545
mov eax, dword [esp + 0x4c]
lock dec dword [eax]
je 0x44855f
mov eax, dword [esp + 0x64]
lock dec dword [eax]
jne 0x447e8d
lea eax, [esp + 0x64]
push eax
call fcn.0044cd30
add esp, 4
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
sub esi, edi
jne 0x447f49
jmp 0x447f68
movsd xmm1, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x50]
mov eax, dword [esp + 0x68]
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 0x120], xmm1
movsd xmm1, qword [esp + 0x48]
movsd qword [esp + 0x118], xmm2
movsd xmm2, qword [esp + 0x38]
mov dword [esp + 0x130], eax
movsd qword [esp + 0x128], xmm0
movsd qword [esp + 0x110], xmm1
movsd xmm1, qword [esp + 0x40]
movsd qword [esp + 0x100], xmm2
movsd qword [esp + 0x108], xmm1
sub esp, 0xc
lea eax, [esp + 0x10c]
lea ecx, [esp + 0xd4]
mov dword [esp + 8], eax
mov dword [esp], ecx
call fcn.00447550
add esp, 0xc
cmp byte [esp + 0xc8], 4
je 0x4481a1
movsd xmm0, qword [esp + 0xc8]
mov eax, dword [ebp + 8]
movsd qword [eax], xmm0
sub esi, edi
je 0x447f68
shr esi, 4
jmp 0x447f56
add edi, 0x10
dec esi
je 0x447f68
mov eax, dword [edi]
lock dec dword [eax]
jne 0x447f50
push edi
call fcn.0044cf60
add esp, 4
jmp 0x447f50
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x447f82
shl eax, 4
push 4
push eax
push dword [esp + 0x20]
call fcn.0040cd20
add esp, 0xc
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0x14]
sub esi, ebx
je 0x447fb8
shr esi, 3
jmp 0x447fa6
add ebx, 8
dec esi
je 0x447fb8
mov eax, dword [ebx]
lock dec dword [eax]
jne 0x447fa0
push ebx
call fcn.0044cf60
add esp, 4
jmp 0x447fa0
mov eax, dword [esp + 0x78]
test eax, eax
je 0x447fd2
shl eax, 3
push 4
push eax
push dword [esp + 0x24]
call fcn.0040cd20
add esp, 0xc
lock dec dword [edi + 0xe8]
jne 0x448032
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x104]
test eax, eax
je 0x448032
mov ecx, dword [esp + 0x14]
xor esi, esi
mov edi, dword [ecx + 0x100]
add ecx, 0xec
mov dword [esp + 0x14], ecx
lea ecx, [eax + eax*8]
lea ebx, [ecx + ecx*2]
add ebx, eax
add edi, 0x10
jmp 0x448019
add edi, 0x1c
inc esi
add ebx, 0xffffffe4
je 0x448032
mov eax, 3
xchg dword [edi], eax
cmp eax, 2
jne 0x448010
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.00449f20
jmp 0x448010
mov eax, dword [esp + 0x34]
lock dec dword [eax]
jne 0x44848f
lea eax, [esp + 0x34]
push eax
call fcn.0044cd30
add esp, 4
jmp 0x44848f
movsd xmm1, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x50]
mov eax, dword [esp + 0x68]
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 0xe8], xmm1
movsd xmm1, qword [esp + 0x48]
movsd qword [esp + 0xe0], xmm2
movsd xmm2, qword [esp + 0x38]
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xc8]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xd8], xmm1
movsd xmm1, qword [esp + 0x40]
movsd qword [esp + 0xc8], xmm2
movsd qword [esp + 0xd0], xmm1
push eax
lea edi, [esp + 0x104]
push edi
call fcn.00448b40
add esp, 8
mov eax, dword [0x59fb24]
movzx eax, byte [eax]
push 0x40
push 0xc0
call fcn.0040cd10
add esp, 8
test eax, eax
je 0x4486c9
push 0xc0
push edi
mov edi, eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
xor ecx, ecx
call fcn.00449460
test eax, eax
je 0x4486ab
cmp dword [eax], 0
jne 0x4486d5
mov dword [eax], edi
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x104], 0
je 0x4486e6
mov edi, dword [eax + 0x100]
mov cl, 1
lea eax, [edi + 4]
mov dword [esp + 0x14], eax
xor eax, eax
lock cmpxchg byte [edi + 4], cl
jne 0x4485da
mov eax, dword [0x500174]
mov eax, dword [eax]
test eax, 0x7fffffff
jne 0x4485f8
mov dword [esp + 0x24], 0
movzx eax, byte [edi + 5]
test al, al
jne 0x44860f
mov byte [edi + 6], 1
push edi
call fcn.004958f0
add esp, 4
cmp byte [esp + 0x24], 0
jne 0x448191
mov eax, dword [0x500174]
mov eax, dword [eax]
test eax, 0x7fffffff
jne 0x448660
mov ecx, dword [esp + 0x14]
xor eax, eax
xchg byte [ecx], al
cmp al, 2
je 0x448643
cmp dword [esp + 0x30], 1
mov eax, dword [esp + 0x18]
je 0x44841b
mov ecx, dword [esp + 0x28]
xor ebx, ebx
mov edi, 0xffffffe0
mov dword [esp + 0x14], 1
lea ecx, [ecx*8 - 8]
mov dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0xa0]
add ecx, 0xfffffff0
nop dword [eax + eax]
movzx edx, byte [eax + ebx*2 + 0x1c]
cmp dl, 2
je 0x44857e
mov dword [esp + 0xa0], ecx
mov ecx, eax
lea eax, [eax + ebx*2 + 0x10]
cmp dword [esp + 0xc4], ebx
mov byte [esp + 0x28], dl
movsd xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x108], eax
movsd qword [esp + 0x100], xmm0
mov byte [esp + 0x10c], dl
lea edx, [esp + 0x10d]
movzx eax, word [ecx + ebx*2 + 0x1d]
movzx ecx, byte [ecx + ebx*2 + 0x1f]
mov word [edx], ax
mov byte [edx + 2], cl
je 0x448595
mov eax, dword [esp + 0x1c]
movsd xmm0, qword [esp + 0x100]
mov dword [esp + 0x30], edi
mov ecx, dword [eax + ebx + 8]
mov dword [esp + 0x24], ecx
mov ecx, edx
mov dh, byte [eax + ebx + 0xc]
mov eax, dword [esp + 0x108]
movsd qword [esp + 0x80], xmm0
mov dword [esp + 0x88], eax
movzx eax, word [ecx]
mov word [esp + 0x20], ax
movzx eax, byte [ecx + 2]
mov ecx, dword [ebp + 0xc]
mov byte [esp + 0x22], al
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x4482d5
mov edi, ecx
mov ecx, dword [ecx + 0x18]
push dword [esp + 0x14]
push eax
lea eax, [esp + 0x108]
push eax
mov byte [esp + 0x7c], dh
call dword [ecx + 0x10]
mov dh, byte [esp + 0x7c]
add esp, 0xc
mov ecx, dword [esp + 0x104]
mov eax, dword [esp + 0x100]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x74], ecx
mov ecx, edi
jmp 0x4482da
mov eax, 0x80000000
mov edi, dword [esp + 0x34]
mov dl, byte [esp + 0x28]
mov dword [esp + 0x28], ebx
movsd xmm0, qword [ecx]
lock inc dword [edi]
jle 0x4486a9
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x90]
lea ecx, [esp + 0x54]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x130], ebx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x88]
movlps qword [esp + 0x38], xmm0
movsd xmm0, qword [esp + 0x80]
mov dword [ecx + 8], eax
movzx eax, word [esp + 0x20]
movsd qword [ecx], xmm0
mov byte [esp + 0x60], dl
mov word [ecx + 0xd], ax
movzx eax, byte [esp + 0x22]
mov byte [ecx + 0xf], al
mov eax, dword [esp + 0x24]
mov dword [esp + 0x4c], eax
mov byte [esp + 0x50], dh
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], ebx
movsd xmm1, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x50]
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 0x120], xmm1
movsd xmm1, qword [esp + 0x48]
movsd qword [esp + 0x118], xmm2
movsd xmm2, qword [esp + 0x38]
movsd qword [esp + 0x128], xmm0
movsd qword [esp + 0x110], xmm1
movsd xmm1, qword [esp + 0x40]
movsd qword [esp + 0x100], xmm2
movsd qword [esp + 0x108], xmm1
sub esp, 0xc
lea eax, [esp + 0x10c]
lea ecx, [esp + 0xd4]
mov dword [esp + 8], eax
mov dword [esp], ecx
call fcn.00447550
add esp, 0xc
cmp byte [esp + 0xc8], 4
jne 0x4485bd
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
inc ebx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x14], ebx
add eax, 8
add edi, 0xfffffff0
add ecx, 0xfffffff0
mov ebx, eax
mov eax, dword [esp + 0x18]
jne 0x4481e0
mov eax, dword [esp + 0x1c]
lea ebx, [eax + ebx + 8]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0xb0]
test ecx, ecx
je 0x448439
shl ecx, 4
push 4
push ecx
push eax
call fcn.0040cd20
add esp, 0xc
sub esi, ebx
je 0x448468
shr esi, 3
jmp 0x448456
add ebx, 8
dec esi
je 0x448468
mov eax, dword [ebx]
lock dec dword [eax]
jne 0x448450
push ebx
call fcn.0044cf60
add esp, 4
jmp 0x448450
mov eax, dword [esp + 0x78]
test eax, eax
je 0x448482
shl eax, 3
push 4
push eax
push dword [esp + 0x24]
call fcn.0040cd20
add esp, 0xc
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 8]
mov dword [ecx + 4], eax
mov byte [ecx], 6
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebx + 0xc]
test esi, esi
je 0x4484bc
mov edi, dword [ebx + 0x10]
mov eax, dword [edi]
test eax, eax
je 0x4484a8
push esi
call eax
add esp, 4
mov eax, dword [edi + 4]
test eax, eax
je 0x4484bc
push dword [edi + 8]
push eax
push esi
call fcn.0040cd20
add esp, 0xc
mov esi, dword [ebx + 0x14]
test esi, esi
je 0x4484e6
mov edi, dword [ebx + 0x18]
mov eax, dword [edi]
test eax, eax
je 0x4484d2
push esi
call eax
add esp, 4
mov eax, dword [edi + 4]
test eax, eax
je 0x4484e6
push dword [edi + 8]
push eax
push esi
call fcn.0040cd20
add esp, 0xc
mov esi, dword [ebx + 0x1c]
test esi, esi
je 0x448510
mov edi, dword [ebx + 0x20]
mov eax, dword [edi]
test eax, eax
je 0x4484fc
push esi
call eax
add esp, 4
mov eax, dword [edi + 4]
test eax, eax
je 0x448510
push dword [edi + 8]
push eax
push esi
call fcn.0040cd20
add esp, 0xc
mov esi, dword [ebx + 0x24]
test esi, esi
je 0x44853a
mov edi, dword [ebx + 0x28]
mov eax, dword [edi]
test eax, eax
je 0x448526
push esi
call eax
add esp, 4
mov eax, dword [edi + 4]
test eax, eax
je 0x44853a
push dword [edi + 8]
push eax
push esi
call fcn.0040cd20
add esp, 0xc
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 0x54]
push eax
call fcn.0044cf60
add esp, 4
mov eax, dword [esp + 0x4c]
lock dec dword [eax]
jne 0x447e77
lea eax, [esp + 0x4c]
push eax
call fcn.0044cf60
add esp, 4
mov eax, dword [esp + 0x64]
lock dec dword [eax]
je 0x447e80
jmp 0x447e8d
mov eax, dword [esp + 0x1c]
mov ecx, edi
lea ebx, [eax + ebx + 8]
mov eax, dword [esp + 0x18]
mov edi, eax
sub edi, ecx
jmp 0x447c5c
mov eax, edi
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0xb0]
sub edi, eax
mov eax, dword [esp + 0x100]
lock dec dword [eax]
je 0x447d74
mov eax, dword [esp + 0x18]
jmp 0x447c5c
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
sub edi, dword [esp + 0x30]
lea ebx, [eax + ecx + 0x10]
jmp 0x447f35
push dword [esp + 0x14]
call fcn.004ac160
add esp, 4
mov eax, dword [0x500174]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x448157
call fcn.00499c20
xor al, 1
mov dword [esp + 0x24], eax
movzx eax, byte [edi + 5]
test al, al
je 0x44816b
mov eax, dword [esp + 0x14]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x24]
mov byte [esp + 0x104], al
push 0x580e84
push 0x580db8
lea eax, [esp + 0x108]
push eax
push 0x2b
push 0x580dc8
call fcn.004dafa0
push ecx
call fcn.004ac200
add esp, 4
cmp dword [esp + 0x30], 1
mov eax, dword [esp + 0x18]
jne 0x4481b0
jmp 0x44841b
call fcn.00499c20
test al, al
jne 0x448191
mov byte [edi + 5], 1
jmp 0x448191
push 0x2f8
push 4
call fcn.004cf360
push 0x140
push 0x40
call fcn.004cf360
mov eax, dword [esp + 0x90]
mov ecx, 4
push eax
push ecx
call fcn.004cf340
push esi
push 0x40
call fcn.004cf340
ud2
push 0x581050
push 0x580d98
lea eax, [esp + 0x108]
push eax
push 0x46
push 0x580fb8
call fcn.004dafa0
push 0xc0
push 0x40
call fcn.004cf360
push 0x581110
push 0x23
push str.assertion_failed:_t.get__.is_null__
call fcn.004dab10
push 0x581060
push 0
push 0
call fcn.004dac50
nop word cs:[eax + eax]
nop
push ebp
mov ebp, esp
push eax
xor ecx, ecx
call fcn.00449460
test eax, eax
je 0x448734
mov eax, dword [eax]
test eax, eax
je 0x448726
add eax, 0x8c
mov eax, dword [eax]
lock inc dword [eax]
jle 0x448732
add esp, 4
pop ebp
ret
call fcn.004476e0
mov eax, dword [eax]
lock inc dword [eax]
jg 0x448721
ud2
lea eax, [ebp - 1]
push 0x581050
push 0x580d98
push eax
push 0x46
push 0x580fb8
call fcn.004dafa0
nop
push ebp
mov ebp, esp
push eax
xor ecx, ecx
call fcn.00449460
test eax, eax
je 0x44877e
mov eax, dword [eax]
test eax, eax
je 0x44876c
add eax, 0x8c
jmp 0x448771
call fcn.004476e0
mov eax, dword [eax]
mov eax, dword [eax + 0x104]
add esp, 4
pop ebp
ret
lea eax, [ebp - 1]
push 0x581050
push 0x580d98
push eax
push 0x46
push 0x580fb8
call fcn.004dafa0
nop dword [eax + eax]
push ebp
mov ebp, esp
push esi
push eax
xor ecx, ecx
xor esi, esi
call fcn.00449460
test eax, eax
je 0x4487d1
mov eax, dword [eax]
test eax, eax
je 0x4487c9
mov ecx, dword [eax + 0x8c]
xor esi, esi
add ecx, 0x40
cmp ecx, dword [ebp + 8]
cmove esi, eax
mov eax, esi
add esp, 4
pop esi
pop ebp
ret
lea eax, [ebp - 5]
push 0x581050
push 0x580d98
push eax
push 0x46
push 0x580fb8
call fcn.004dafa0
nop dword [eax + eax]
push ebp
mov ebp, esp
push edi
push esi
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xc4]
test eax, eax
je 0x448821
mov esi, dword [ecx + 0xc0]
lea ecx, [eax + eax*8]
lea edi, [ecx + ecx*2]
add edi, eax
push esi
add esi, 0x1c
call fcn.0044e0e0
add esp, 4
add edi, 0xffffffe4
jne 0x448810
pop esi
pop edi
pop ebp
ret