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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x770
call 0x4847d4
pop eax
mov ebx, ecx
mov dword [esp + 0x10c], edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x74], eax
movzx eax, byte [ecx + 0x1cc]
test eax, eax
je 0x484825
cmp eax, 3
jne 0x4848fe
movzx ecx, byte [ebx + 0x1c4]
lea eax, [ebx + 0x1c4]
mov dword [esp + 4], eax
lea eax, [ebx + 0x1bc]
test ecx, ecx
je 0x484873
cmp ecx, 3
jne 0x484910
mov edi, dword [eax]
jmp 0x484924
lea esi, [esp + 0x250]
push 0x1b0
push ebx
push esi
call fcn.005010b0
add esp, 0xc
mov ecx, esi
call fcn.00485e44
test eax, eax
je 0x48487e
mov ecx, dword [ebx + 0x1b0]
call fcn.00484678
test eax, eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x254], edx
je 0x4848d1
cmp eax, 1
jne 0x4848c5
lea ecx, [esp + 0x4e0]
mov dword [ecx], edx
jmp 0x4848cc
mov edi, dword [ebx + 0x1c0]
jmp 0x484922
mov dword [ebx + 0x1b4], edx
xor edx, edx
mov ecx, dword [ebx + 0x1b0]
call fcn.00484678
test eax, eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x254], edx
je 0x4848ed
cmp eax, 1
jne 0x4848e1
lea ecx, [esp + 0x4e0]
lea esi, [ebx + 0x1b4]
mov dword [ecx], edx
call fcn.00479862
mov ecx, esi
call fcn.0047a31d
jmp 0x4848d1
lea ecx, [esp + 0x254]
call fcn.00479862
lea ecx, [ebx + 0x1c8]
call fcn.004793b3
jmp 0x485317
lea ecx, [esp + 0x254]
call fcn.00479862
mov eax, dword [ebx + 0x1c8]
mov dword [ebx + 0x1b8], eax
jmp 0x485dc1
push 0x23
pop edx
mov ecx, str._async_fn__resumed_after_completionunable_to_find_any_user_specified_roots_in_the_final_cert_chain.cargo_registry_srcindex.crates.io_1cd66030c949c28d_tokio_util_0.7.10_srcutilpoll_buf.rs
push 0x54e6cc
jmp 0x484b06
push 0x23
pop edx
mov ecx, str._async_fn__resumed_after_completionunable_to_find_any_user_specified_roots_in_the_final_cert_chain.cargo_registry_srcindex.crates.io_1cd66030c949c28d_tokio_util_0.7.10_srcutilpoll_buf.rs
push 0x53cb5c
jmp 0x484b06
mov dword [eax], edi
mov eax, dword [esp + 0x10c]
mov esi, dword [eax]
mov ecx, esi
call fcn.004df85e
test al, 1
jne 0x4852d9
mov ecx, dword [edi]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], eax
shr eax, 0x10
lea ebx, [esp + 0x250]
mov dword [esp + 0xc], eax
lea edi, [ecx + 0xc0]
lea esi, [ecx + 0x40]
mov dword [esp], ecx
mov ecx, ebx
mov edx, edi
push esi
call fcn.00479510
pop eax
mov ebx, dword [ebx + 8]
mov eax, ebx
and al, 7
cmp al, 3
je 0x4849f1
cmp ebx, 4
jne 0x484a1a
mov eax, dword [esp]
mov edx, dword [esp + 0x20]
lea ecx, [eax + 0x80]
call fcn.004dfa35
lea ebx, [esp + 0x250]
mov edx, edi
mov ecx, ebx
push esi
call fcn.00479510
pop eax
mov ebx, dword [ebx + 8]
mov eax, ebx
and al, 7
cmp al, 3
je 0x484ade
cmp ebx, 4
jne 0x484b10
mov eax, dword [esp + 0x24]
xor esi, esi
mov al, ah
push 4
pop ebx
mov ecx, dword [esp]
cmp byte [ecx + 0xcc], 0
je 0x484bcf
mov ecx, dword [ecx + 0xe4]
xor esi, esi
movzx eax, al
cmp ecx, 2
cmovb eax, esi
sbb ebx, 0
sbb esi, esi
jmp 0x484bcf
mov eax, dword [esp]
xor esi, esi
mov eax, dword [eax + 0xe4]
push 3
pop ebx
cmp eax, 2
jb 0x484bcd
push 0x30
pop edx
mov ecx, str.assertion_failed:_self.inner.semaphore.is_idle__.cargo_registry_srcindex.crates.io_1cd66030c949c28d_tokio_1.33.0_src_syncmpscchan.rs
push 0x53ca78
jmp 0x484b06
lea eax, [esp + 0x260]
mov ecx, dword [eax - 0x10]
mov edx, dword [eax - 4]
mov dword [esp + 0x7c], ecx
mov ecx, dword [eax - 0xc]
mov dword [esp + 0x78], ecx
push 0xc
pop ecx
lea edi, [esp + 0x1c0]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x44], eax
mov dword [esp + 0x6c], ecx
lea eax, [esp + 0x29c]
push 0x13
pop ecx
lea edi, [esp + 0x4e0]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov esi, edx
mov ecx, dword [eax + 0x5c]
movsd xmm1, qword [eax + 0x54]
movsd xmm0, qword [eax + 0x4c]
movsd xmm2, qword [eax + 0x60]
mov dword [esp + 0x90], ecx
mov ecx, dword [eax + 0x70]
movsd qword [esp + 0x88], xmm1
movsd xmm1, qword [eax + 0x68]
movsd qword [esp + 0x80], xmm0
movsd qword [esp + 0x190], xmm2
mov dword [esp + 0x1a0], ecx
mov cl, byte [eax + 0x74]
mov eax, dword [eax + 0x7c]
movsd qword [esp + 0x198], xmm1
mov byte [esp + 0x17], cl
mov ecx, dword [esp]
mov dword [esp + 0x28], eax
lock sub dword [ecx + 0xe4], 2
jae 0x484bcd
push 7
pop ecx
int 0x29
ud2
push 3
pop ebx
mov eax, dword [esp]
xor esi, esi
mov eax, dword [eax + 0xe4]
cmp eax, 2
mov eax, dword [esp + 0x28]
jb 0x484bc9
push 0x30
pop edx
mov ecx, str.assertion_failed:_self.inner.semaphore.is_idle__.cargo_registry_srcindex.crates.io_1cd66030c949c28d_tokio_1.33.0_src_syncmpscchan.rs
push 0x53ca88
call fcn.0050d590
jmp 0x4852fa
lea eax, [esp + 0x260]
mov ecx, dword [eax - 0x10]
mov edx, dword [eax - 4]
mov dword [esp + 0x7c], ecx
mov ecx, dword [eax - 0xc]
mov dword [esp + 0x78], ecx
push 0xc
pop ecx
lea edi, [esp + 0x1c0]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x29c]
mov dword [esp + 0x6c], ecx
push 0x13
pop ecx
lea edi, [esp + 0x4e0]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov esi, edx
mov ecx, dword [eax + 0x5c]
movsd xmm0, qword [eax + 0x4c]
movsd xmm1, qword [eax + 0x54]
mov edx, dword [esp]
mov dword [esp + 0x90], ecx
mov ecx, dword [eax + 0x70]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [eax + 0x60]
movsd qword [esp + 0x88], xmm1
mov dword [esp + 0x1a0], ecx
movsd qword [esp + 0x190], xmm0
movsd xmm0, qword [eax + 0x68]
mov cl, byte [eax + 0x74]
mov eax, dword [eax + 0x7c]
movsd qword [esp + 0x198], xmm0
mov byte [esp + 0x17], cl
lock sub dword [edx + 0xe4], 2
jb 0x485e14
mov dword [esp + 0x28], eax
xor eax, eax
movzx edx, byte [esp + 0xc]
movzx ecx, al
call fcn.004df87a
mov eax, ebx
xor eax, 4
or eax, esi
je 0x4852d9
push 0xc
pop ecx
lea edx, [esp + 0x208]
mov dword [esp], esi
lea esi, [esp + 0x1c0]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
push 0x13
pop ecx
mov eax, ebx
lea ebx, [esp + 0x410]
lea esi, [esp + 0x4e0]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x6a0]
mov ecx, dword [esp + 0x90]
movsd xmm0, qword [esp + 0x80]
movsd xmm1, qword [esp + 0x88]
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0x1a0]
movsd qword [esp + 0xe8], xmm1
movsd qword [esp + 0xe0], xmm0
movsd xmm0, qword [esp + 0x190]
movsd xmm1, qword [esp + 0x198]
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 4]
movsd qword [esp + 0xc0], xmm0
movsd qword [esp + 0xc8], xmm1
mov byte [ecx], 1
push 0xc
pop ecx
mov esi, edx
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x6d4]
push 0x13
pop ecx
mov esi, ebx
mov ebx, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
movsd xmm0, qword [esp + 0xe0]
movsd xmm1, qword [esp + 0xe8]
mov edx, dword [esp]
mov eax, dword [esp + 0xf0]
mov esi, dword [esp + 0xd0]
xor ecx, 3
movsd qword [esp + 0x180], xmm1
movsd qword [esp + 0x178], xmm0
movsd xmm0, qword [esp + 0xc0]
movsd xmm1, qword [esp + 0xc8]
or ecx, edx
mov dword [esp + 0x188], eax
mov dword [esp + 0x170], esi
movsd qword [esp + 0x160], xmm0
movsd qword [esp + 0x168], xmm1
je 0x4852fd
lea edi, [esp + 0x90]
push 0xc
pop ecx
lea esi, [esp + 0x6a0]
rep movsd dword es:[edi], dword [esi]
push 0x13
pop ecx
lea edi, [esp + 0x720]
lea esi, [esp + 0x6d4]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x90]
lea esi, [esp + 0x724]
mov eax, dword [esp + 0x188]
movsd xmm0, qword [esp + 0x178]
movsd xmm1, qword [esp + 0x180]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x170]
movsd qword [esp + 0x128], xmm1
movsd qword [esp + 0x120], xmm0
movsd xmm0, qword [esp + 0x160]
movsd xmm1, qword [esp + 0x168]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x78]
movsd qword [esp + 0x140], xmm1
movsd qword [esp + 0x138], xmm0
mov dword [ecx - 0xc], eax
mov eax, dword [esp + 0x7c]
mov dword [ecx - 0x10], eax
lea eax, [esp + 0x88]
mov dword [eax + 4], edx
mov dword [eax], ebx
push 0x12
pop ecx
lea eax, [esp + 0x1c0]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
call fcn.004443cb
mov ecx, eax
push 4
push 0x57ee4b
call fcn.0047c63d
pop ecx
pop edx
test al, al
je 0x484e10
lea ecx, [esp + 0x1c0]
call fcn.004443cb
mov ecx, eax
push 5
push 0x57ee4f
call fcn.0047c63d
pop ecx
pop edx
test al, al
jne 0x484e46
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 0x1b4]
cmp byte [esi + 0x12a], 0
lea edi, [esi + 8]
je 0x484e8d
lea ecx, [esp + 0x1c0]
call fcn.004443cb
mov ecx, eax
push 5
push 0x57ee4f
call fcn.0047c63d
pop ecx
pop edx
test al, al
je 0x484e8d
lea ecx, [esp + 0x1c0]
call fcn.0047c66b
lea ecx, [esp + 0x138]
mov dword [esp], eax
call fcn.004797f1
lea ecx, [esp + 0x80]
call fcn.0044301c
lea ecx, [esp + 0x120]
call fcn.00443009
mov dword [esp + 0xc], 0
push 3
pop eax
mov dword [esp + 4], eax
jmp 0x485737
xor ecx, ecx
cmp dword [esi + 0xf0], 0
lea eax, [esi + 0xc8]
lea edx, [esp + 0x4e0]
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], esi
sete cl
add ecx, ecx
mov dword [edx], ecx
mov dword [edx + 8], eax
and dword [edx + 0xc], 0
lea ecx, [esp + 0x4e0]
call fcn.0042d4b2
test eax, eax
je 0x48509a
lea ecx, [esp + 0x80]
mov edi, eax
mov dword [esp + 0x2c], edx
call fcn.00423eae
lea ecx, [esp + 0x88]
mov edx, edi
mov dword [esp + 8], edi
call fcn.004341e3
movzx ecx, word [esp + 0xb8]
mov ebx, eax
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
mov edi, dword [esp + 0x84]
xor esi, esi
mov dword [esp + 0xc], ebx
mov dword [esp], ecx
and ebx, ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], ecx
mov eax, ebx
mov ebx, eax
xor eax, eax
cmp ebx, edi
jae 0x484f30
movzx eax, word [ecx + ebx*4]
cmp eax, 0xffff
je 0x484fe0
mov dword [esp + 4], eax
movzx eax, word [ecx + ebx*4 + 2]
mov edx, dword [esp]
mov ecx, esi
mov esi, ebx
and edx, eax
sub esi, edx
and esi, dword [esp]
cmp esi, ecx
mov esi, ecx
jb 0x484fe0
cmp ax, word [esp + 0xc]
jne 0x484fd5
mov eax, dword [esp + 4]
cmp dword [esp + 0x1c], eax
jbe 0x4852ea
mov edx, dword [esp + 0x10]
imul eax, eax, 0x34
mov esi, dword [esp + 8]
mov edx, dword [edx + eax + 0xc]
test edx, edx
mov dword [esp + 4], edx
setne dl
cmp dword [esi + 0xc], 0
mov esi, ecx
sete dh
cmp dl, dh
je 0x484fd5
add eax, dword [esp + 0x10]
cmp dword [esp + 4], 0
je 0x484fc7
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 8]
push dword [eax + 4]
push dword [eax]
call fcn.00419669
pop ecx
pop edx
test al, al
je 0x484fd5
jmp 0x484eb9
mov al, byte [eax]
mov ecx, dword [esp + 8]
cmp al, byte [ecx]
je 0x484eb9
mov ecx, dword [esp + 0x30]
inc esi
inc ebx
jmp 0x484f2e
mov ecx, dword [esp + 0x88]
cmp esi, 0x200
mov edx, dword [esp + 8]
setae al
xor ecx, 2
or ecx, dword [esp + 0x8c]
setne cl
and cl, al
mov byte [esp], cl
lea ecx, [esp + 0x250]
call fcn.00430f09
mov eax, dword [esp + 0x250]
mov ecx, dword [esp + 0x254]
mov edx, dword [esp + 0x258]
mov edi, dword [esp + 0x25c]
lea esi, [esp + 0x250]
mov dword [esp + 0xc0], eax
lea eax, [esp + 0x80]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edi
mov dword [esp + 0xd0], ebx
mov cl, byte [esp]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xc]
mov word [esp + 0xd8], ax
mov byte [esp + 0xda], cl
mov ecx, esi
call fcn.004775b2
lea ecx, [esp + 0xc0]
mov edx, esi
call fcn.0043411a
jmp 0x484eb9
mov edx, dword [esp + 0x1e8]
lea ecx, [esp + 0xe0]
push dword [esp + 0x1ec]
call fcn.0047b5d8
pop eax
xor edx, edx
cmp dword [esp + 0x138], 0
mov esi, dword [esp + 0x18]
mov ecx, 0x53bc34
mov edi, str._rustc_90c541806f23a127002de5b4038be731ba1458calibrarycore_src_strpattern.rs
mov eax, 0
mov dword [esp], 0
je 0x485186
movsd xmm0, qword [esp + 0x13c]
movsd xmm1, qword [esp + 0x144]
xor ecx, ecx
movsd qword [esp + 0x118], xmm1
movsd qword [esp + 0x110], xmm0
cmp dword [esp + 0x11c], 0
je 0x485147
lea edi, [esp + 0x250]
lea ebx, [esp + 0x110]
mov ecx, edi
mov edx, ebx
call fcn.004194ba
mov eax, dword [edi + 8]
movsd xmm0, qword [edi]
mov ecx, dword [ebx + 0xc]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x4e8], eax
mov eax, dword [edi + 0xc]
movsd qword [esp + 0x4e0], xmm0
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x4e8]
movsd xmm0, qword [esp + 0x4e0]
mov edi, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0x118]
movsd qword [esp + 0x250], xmm0
mov dword [esp], eax
xor eax, eax
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x258]
movsd xmm0, qword [esp + 0x250]
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov dword [esp + 4], ecx
mov dword [esp + 0x158], eax
movsd qword [esp + 0x150], xmm0
cmp byte [esi + 0x129], 0
je 0x485473
lea eax, [esp + 0xf0]
xor ecx, ecx
mov edx, 0x539de8
cmp byte [eax], 0
cmovne ecx, eax
call fcn.0046f584
test al, al
je 0x485473
lea edx, [esp + 0x250]
lea ecx, [esp + 0x80]
and dword [edx + 0xc], 0
and dword [edx + 8], 0
and dword [edx + 4], 0
mov dword [edx], 0x33
call fcn.00424602
test al, al
jne 0x485473
mov eax, dword [esi + 0x118]
mov edi, dword [eax + 0xc]
imul esi, dword [eax + 0x10], 0x44
add edi, 0x18
test esi, esi
je 0x485473
mov eax, dword [edi]
mov eax, dword [eax*4 + 0x485e1c]
add eax, dword [esp + 0x74]
jmp eax
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x34]
mov cl, 3
mov byte [eax], 3
mov al, 1
jmp 0x48531b
mov edx, dword [esp + 0x1c]
mov ecx, eax
push 0x53bac8
call fcn.0050d500
pop eax
ud2
mov ebx, dword [esp + 0x34]
lea ecx, [ebx + 0x1b8]
call fcn.004793b3
lea ecx, [ebx + 0x1b4]
call fcn.0047a31d
mov cl, 1
xor eax, eax
mov byte [ebx + 0x1cc], cl
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea esi, [esp + 0x250]
mov ecx, esi
call fcn.0043129b
lea ebx, [esp + 0x410]
lea edx, [esp + 0x120]
mov ecx, ebx
call fcn.0047b62c
lea ecx, [esp + 0x4e0]
mov edx, esi
push ebx
call fcn.00424bb6
pop eax
push 0xb
pop ecx
lea esi, [esp + 0xe0]
mov edi, ebx
lea edx, [esp + 0x4e0]
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x250]
mov ecx, esi
push ebx
call fcn.0047b6f4
pop eax
mov ebx, dword [esi + 8]
mov edi, dword [esi + 0xc]
mov cl, byte [esi]
mov ch, byte [esi + 1]
mov eax, ebx
xor eax, 3
or eax, edi
je 0x485522
lea esi, [esp + 0x260]
mov byte [esp + 0x10], cl
mov byte [esp + 0x1c], ch
mov eax, dword [esi - 0xe]
mov edx, dword [esi + 0x74]
mov dword [esp + 0x208], eax
movzx eax, word [esi - 0xa]
mov word [esp + 0x20c], ax
push 0x1d
pop ecx
mov eax, edi
lea edi, [esp + 0x410]
shr edx, 8
rep movsd dword es:[edi], dword [esi]
mov edi, eax
mov ch, byte [esp + 0x1c]
mov cl, byte [esp + 0x10]
lea eax, [esp + 0x4f0]
mov byte [eax - 0x10], cl
mov byte [eax - 0xf], ch
mov ecx, dword [esp + 0x208]
mov dword [eax - 0xe], ecx
movzx ecx, word [esp + 0x20c]
mov word [eax - 0xa], cx
mov dword [eax - 8], ebx
mov dword [eax - 4], edi
push 0x1d
pop ecx
lea ebx, [esp + 0x410]
mov edi, eax
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x250]
lea edi, [esp + 0x4e0]
mov cl, byte [esp + 0x17]
mov byte [eax + 0x74], cl
mov ecx, edx
mov word [eax + 0x75], dx
mov edx, dword [esp + 8]
shr ecx, 0x10
mov byte [eax + 0x77], cl
mov ecx, dword [esp + 0xc]
mov dword [ebx], edx
mov edx, dword [esp]
mov dword [ebx + 4], ecx
mov ecx, dword [esp + 4]
mov dword [ebx + 8], edx
mov edx, edi
mov dword [ebx + 0xc], ecx
mov ecx, esi
push ebx
call fcn.0047b8b5
pop eax
mov ecx, edi
mov edx, esi
push 0x54e3f0
call fcn.0047b961
pop eax
lea ebx, [esp + 0x250]
lea edx, [esp + 0x80]
mov ecx, ebx
call fcn.0047b9a4
lea edi, [esp + 0x4f0]
mov ecx, edi
call fcn.0044301c
push 0x10
pop ecx
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
push 0x98
lea eax, [esp + 0x4e4]
push eax
push ebx
call fcn.005010b0
add esp, 0xc
mov ecx, dword [esp + 0x20]
mov edx, ebx
call fcn.0047bc6a
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
mov ecx, 0x3b9aca00
cmp eax, ecx
jne 0x485616
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x110]
xor ebx, ebx
cmp eax, ecx
mov dword [esp + 0x10], edx
je 0x48567b
cmp dword [esp + 0x44], 0x3b9aca00
mov edx, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
jne 0x485642
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x108]
mov edi, dword [ecx + 0x10c]
lea esi, [esp + 0x250]
mov ecx, esi
push 0x53b820
push eax
push edi
call fcn.004e2321
add esp, 0xc
cmp dword [esi + 0x40], 2
je 0x48567b
push 0x50
pop ecx
push 8
pop edx
call fcn.00423cc6
mov ebx, eax
push 0x14
pop ecx
lea esi, [esp + 0x250]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x84]
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 4], ecx
push 0xc
pop ecx
lea edi, [esp + 0x250]
lea esi, [esp + 0x90]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x18]
lock inc dword [edx]
jle 0x485e10
mov eax, dword [esp + 0x130]
movsd xmm0, qword [esp + 0x120]
movsd xmm1, qword [esp + 0x128]
mov dword [esp + 0x68], eax
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm0
push 0x12
pop ecx
lea edi, [esp + 0x208]
lea esi, [esp + 0x1c0]
rep movsd dword es:[edi], dword [esi]
push 0xc
pop ecx
lea edi, [esp + 0x190]
lea esi, [esp + 0x250]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x158]
movsd xmm0, qword [esp + 0x150]
mov dword [esp + 0x50], eax
movsd qword [esp + 0x48], xmm0
mov edx, dword [0x58b134]
mov eax, dword [0x58b130]
lea esi, [esp + 0x410]
lea edi, [esp + 0x4e0]
mov ebx, eax
mov ecx, edx
add ebx, 1
adc ecx, 0
lock cmpxchg8b qword [0x58b130]
jne 0x485750
lea ebx, [esp + 0x80]
mov dword [ebx], eax
mov dword [ebx + 4], edx
push 0xd0
push esi
push edi
call fcn.005010b0
add esp, 0xc
mov ecx, dword [esp]
lea eax, [esp + 0x5c0]
mov dword [eax - 0x10], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax - 0xc], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax - 4], ecx
mov ecx, dword [esp + 4]
mov dword [eax - 8], ecx
push 0xc
pop ecx
lea esi, [esp + 0x190]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x34], ecx
lea eax, [esp + 0x5f8]
push 0x12
pop ecx
lea esi, [esp + 0x208]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 8]
and dword [eax + 0x48], 0
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x60]
mov dword [eax + 0x4c], ecx
mov ecx, dword [esp + 0x18]
and dword [eax + 0x50], 0
mov dword [eax + 0x54], 4
and dword [eax + 0x58], 0
mov dword [eax + 0x5c], ecx
mov ecx, dword [esp + 0x68]
movsd qword [eax + 0x60], xmm0
movsd qword [eax + 0x68], xmm1
movsd xmm0, qword [esp + 0x48]
mov dword [eax + 0x70], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 0x74], ecx
mov ecx, dword [esp + 0x50]
movsd qword [eax + 0x78], xmm0
movsd xmm0, qword [esp + 0x1c0]
mov dword [eax + 0x80], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x84], ecx
mov ecx, dword [esp + 0xe4]
mov dword [eax + 0x8c], ecx
mov ecx, dword [esp + 0xe0]
mov dword [eax + 0x88], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x90], ecx
mov cl, byte [esp + 0x1c8]
movsd qword [eax + 0x94], xmm0
mov byte [eax + 0x9c], cl
xor ecx, ecx
mov byte [eax + 0x9d], 0
mov dword [eax + 0xa0], ebx
call fcn.004dc44c
test eax, eax
je 0x485de9
mov ecx, eax
call fcn.00446e25
mov ebx, eax
mov eax, dword [eax]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
push 0xd0
lea eax, [esp + 0x414]
push eax
lea eax, [esp + 0x258]
push eax
call fcn.005010b0
add esp, 0xc
mov ecx, dword [esp]
lea eax, [esp + 0x330]
mov dword [eax - 0x10], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax - 0xc], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax - 4], ecx
mov ecx, dword [esp + 4]
mov dword [eax - 8], ecx
push 0xc
pop ecx
lea esi, [esp + 0x190]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x34], ecx
lea eax, [esp + 0x368]
push 0x12
pop ecx
lea esi, [esp + 0x208]
mov edi, eax
lea edx, [esp + 0x80]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 8]
and dword [eax + 0x48], 0
and dword [eax + 0x50], 0
and dword [eax + 0x58], 0
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x60]
cmp dword [esp + 0x20], 2
mov dword [eax + 0x4c], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x54], 4
mov dword [eax + 0x5c], ecx
mov ecx, dword [esp + 0x68]
movsd qword [eax + 0x60], xmm0
movsd qword [eax + 0x68], xmm1
movsd xmm0, qword [esp + 0x48]
mov dword [eax + 0x70], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 0x74], ecx
mov ecx, dword [esp + 0x50]
movsd qword [eax + 0x78], xmm0
movsd xmm0, qword [esp + 0x1c0]
mov dword [eax + 0x80], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x84], ecx
mov ecx, dword [esp + 0xe4]
mov dword [eax + 0x8c], ecx
mov ecx, dword [esp + 0xe0]
mov dword [eax + 0x88], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x90], ecx
mov cl, byte [esp + 0x1c8]
movsd qword [eax + 0x94], xmm0
mov byte [eax + 0x9c], cl
mov byte [eax + 0x9d], 0
mov dword [eax + 0xa0], edx
jne 0x4859eb
lea ecx, [esp + 0x250]
call fcn.0047a225
xor ebx, ebx
jmp 0x485d99
mov eax, ebx
mov ecx, dword [esp + 0x80]
add ebx, 4
mov edi, dword [esp + 0x84]
cmp dword [eax], 0
mov dword [esp + 0x20], ecx
je 0x485bd4
mov esi, dword [ebx]
lock inc dword [esi]
jle 0x485e10
lea eax, [esi + 8]
mov dword [esp + 0x40], eax
lea eax, [esi + 0xb8]
mov dword [esp + 0x3c], eax
push 0x40
pop edx
mov ecx, 0x200
call fcn.00423cc6
mov dword [eax], 0xcc
and dword [eax + 4], 0
mov dword [eax + 8], 0x53cc74
mov ebx, eax
and dword [eax + 0x14], 0
and dword [eax + 0x10], 0
mov dword [eax + 0x18], esi
mov dword [eax + 0x24], edi
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x20], eax
lea eax, [ebx + 0x28]
push 0xd0
lea ecx, [esp + 0x414]
push ecx
push eax
call fcn.005010b0
add esp, 0xc
mov eax, dword [esp]
lea edi, [ebx + 0x108]
mov dword [ebx + 0xf8], eax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0xfc], eax
mov eax, dword [esp + 0xc]
mov dword [ebx + 0x104], eax
mov eax, dword [esp + 4]
mov dword [ebx + 0x100], eax
push 0xc
pop ecx
lea esi, [esp + 0x190]
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x140]
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x138], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x13c], eax
push 0x12
pop ecx
lea esi, [esp + 0x208]
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 8]
and dword [ebx + 0x188], 0
mov dword [ebx + 0x18c], eax
mov eax, dword [esp + 0x18]
and dword [ebx + 0x190], 0
mov dword [ebx + 0x194], 4
and dword [ebx + 0x198], 0
mov dword [ebx + 0x19c], eax
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x60]
movsd qword [ebx + 0x1a0], xmm0
movsd qword [ebx + 0x1a8], xmm1
mov eax, dword [esp + 0x68]
mov dword [ebx + 0x1b0], eax
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x1b4], eax
movsd xmm0, qword [esp + 0x48]
movsd qword [ebx + 0x1b8], xmm0
mov eax, dword [esp + 0x50]
mov dword [ebx + 0x1c0], eax
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x1c4], eax
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe0]
mov dword [ebx + 0x1cc], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x1c8], ecx
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x1d0], eax
movsd xmm0, qword [esp + 0x1c0]
movsd qword [ebx + 0x1d4], xmm0
mov al, byte [esp + 0x1c8]
mov byte [ebx + 0x1dc], al
mov byte [ebx + 0x1dd], 0
and dword [ebx + 0x1e0], 0
and dword [ebx + 0x1e4], 0
and dword [ebx + 0x1ec], 0
push ebx
call fcn.00447288
pop ecx
mov ecx, dword [esp + 0x40]
mov edx, eax
call fcn.004e199b
jmp 0x485d99
mov esi, dword [ebx]
mov dword [esp + 0x3c], ebx
lock inc dword [esi]
jle 0x485e10
lea eax, [esi + 0x98]
mov dword [esp + 0x40], eax
push 0x40
pop edx
mov ecx, 0x200
call fcn.00423cc6
mov dword [eax], 0xcc
and dword [eax + 4], 0
mov dword [eax + 8], 0x53cdb4
mov ebx, eax
and dword [eax + 0x14], 0
and dword [eax + 0x10], 0
mov dword [eax + 0x18], esi
mov dword [eax + 0x24], edi
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x20], eax
lea eax, [ebx + 0x28]
push 0xd0
lea ecx, [esp + 0x414]
push ecx
push eax
call fcn.005010b0
add esp, 0xc
mov eax, dword [esp]
lea edi, [ebx + 0x108]
mov dword [ebx + 0xf8], eax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0xfc], eax
mov eax, dword [esp + 0xc]
mov dword [ebx + 0x104], eax
mov eax, dword [esp + 4]
mov dword [ebx + 0x100], eax
push 0xc
pop ecx
lea esi, [esp + 0x190]
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x140]
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x138], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x13c], eax
push 0x12
pop ecx
lea esi, [esp + 0x208]
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 8]
and dword [ebx + 0x188], 0
mov dword [ebx + 0x18c], eax
mov eax, dword [esp + 0x18]
and dword [ebx + 0x190], 0
mov dword [ebx + 0x194], 4
and dword [ebx + 0x198], 0
mov dword [ebx + 0x19c], eax
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x60]
movsd qword [ebx + 0x1a0], xmm0
movsd qword [ebx + 0x1a8], xmm1
mov eax, dword [esp + 0x68]
mov dword [ebx + 0x1b0], eax
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x1b4], eax
movsd xmm0, qword [esp + 0x48]
movsd qword [ebx + 0x1b8], xmm0
mov eax, dword [esp + 0x50]
mov dword [ebx + 0x1c0], eax
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x1c4], eax
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe0]
mov dword [ebx + 0x1cc], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x1c8], ecx
mov ecx, dword [esp + 0x40]
mov dword [ebx + 0x1d0], eax
movsd xmm0, qword [esp + 0x1c0]
movsd qword [ebx + 0x1d4], xmm0
mov al, byte [esp + 0x1c8]
mov byte [ebx + 0x1dc], al
mov byte [ebx + 0x1dd], 0
and dword [ebx + 0x1e0], 0
and dword [ebx + 0x1e4], 0
and dword [ebx + 0x1ec], 0
push ebx
call fcn.00447288
pop ecx
test eax, eax
je 0x485d99
mov ecx, dword [esp + 0x3c]
mov edx, eax
call fcn.004e1614
mov eax, dword [esp + 0x24]
dec dword [eax]
test ebx, ebx
je 0x485df9
mov ecx, 0x84
mov eax, 0xcc
lock cmpxchg dword [ebx], ecx
je 0x485dbd
mov eax, dword [ebx + 8]
push ebx
call dword [eax + 0x1c]
add esp, 4
mov ebx, dword [esp + 0x34]
lea edi, [ebx + 0x1b8]
lea ecx, [ebx + 0x1c4]
lea eax, [ebx + 0x1bc]
mov dword [ebx + 0x1c0], edi
mov dword [esp + 4], ecx
mov byte [ebx + 0x1c4], 0
jmp 0x484922
lea ecx, [esp + 0x4e0]
call fcn.0047a225
mov al, 1
jmp 0x485dfb
xor eax, eax
lea ecx, [esp + 0x250]
mov edx, 0x54e6dc
mov byte [ecx], al
call fcn.004e095c
ud2
ud2
push 7
pop ecx
int 0x29
ud2