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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x170
mov esi, ecx
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx]
call dword [eax + 0x10]
test al, al
jne 0x821e2b
push str.external_openscreen_discovery_mdns_mdns_publisher.cc
push 4
call fcn.0075e090
add esp, 8
test al, al
je 0x821e2b
mov dword [esp + 0x5c], 4
mov dword [esp + 0x60], str.external_openscreen_discovery_mdns_mdns_publisher.cc
mov dword [esp + 0x64], 0x152
lea ecx, [esp + 0xa8]
mov ebx, esi
lea esi, [esp + 0x70]
mov dword [esp + 0x70], 0x866ac4
lea edi, [esp + 0x74]
mov dword [esp + 0x68], 0x866be8
mov dword [esp + 0xa8], 0x866bfc
mov dword [esp + 0x6c], 0
push edi
call fcn.004cf350
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0xffffffff
mov dword [esp + 0x68], 0x866ab0
mov dword [esp + 0xa8], 0x866ad8
mov dword [esp + 0x70], 0x866ac4
mov ecx, edi
call fcn.004cf9a0
mov dword [esp + 0x74], 0x865954
xorps xmm0, xmm0
movups xmmword [esp + 0x94], xmm0
mov dword [esp + 0xa4], 0x18
push 0xa
push 0x942d11
push esi
mov esi, ebx
call fcn.00402f60
add esp, 0xc
push 0x25
push 0x942d7c
push eax
call fcn.00402f60
add esp, 0xc
push 0xa
push 0x942d2f
push eax
call fcn.00402f60
add esp, 0xc
lea ecx, [esp + 0x5c]
call fcn.0060f450
mov eax, dword [esi + 0x64]
cmp eax, dword [esi + 0x68]
je 0x8229fd
xorps xmm0, xmm0
movups xmmword [esp + 0x3c], xmm0
movaps xmmword [esp + 0x30], xmm0
movaps xmmword [esp + 0x20], xmm0
movaps xmmword [esp + 0x10], xmm0
call fcn.00839180
movzx eax, ax
lea edi, [esp + 0x10]
mov ecx, edi
push 1
push eax
call fcn.00838000
mov ebx, dword [esi + 0x64]
cmp ebx, dword [esi + 0x68]
mov dword [esp + 0xc], esi
jne 0x821f74
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x2c]
je 0x821e9c
mov eax, dword [esi + 4]
mov edx, dword [eax]
lea ebx, [esp + 0x14c]
mov ecx, ebx
push edi
push eax
call dword [edx + 8]
mov ecx, ebx
mov esi, dword [esp + 0xc]
call fcn.0060d3d0
cmp byte [esi + 0x58], 0
je 0x821eae
lea ecx, [esi + 0x18]
call fcn.0085b9e0
mov byte [esi + 0x58], 0
mov edi, dword [esi + 0x64]
mov ebx, dword [esi + 0x68]
cmp ebx, edi
je 0x822751
mov dword [esp], edi
jmp 0x821ef0
mov ecx, dword [ebx - 0x4c]
mov edi, dword [esp]
mov dword [ebx - 0x48], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 4]
mov ebx, eax
cmp eax, edi
je 0x822751
mov eax, dword [ebx - 8]
cmp eax, 0xffffffff
je 0x821f0b
lea ecx, [ebx - 0x30]
push ecx
lea ecx, [esp + 0x60]
push ecx
call dword [eax*4 + 0x942fc0]
add esp, 8
lea eax, [ebx - 0x50]
mov dword [ebx - 8], 0xffffffff
mov esi, dword [ebx - 0x4c]
test esi, esi
je 0x821ee6
mov dword [esp + 4], eax
mov eax, dword [ebx - 0x48]
mov ecx, esi
cmp eax, esi
jne 0x821f36
jmp 0x821ed6
mov eax, edi
cmp edi, esi
je 0x821ed0
lea edi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x821f30
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x821f30
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0x100], esi
push ecx
call fcn.0051c570
add esp, 4
lea edi, [esp + 0x10]
mov esi, dword [esp + 0xc]
cmp ebx, dword [esi + 0x68]
je 0x821e74
mov ecx, edi
push ebx
call fcn.00839130
test al, al
mov dword [esp + 0x58], ebx
je 0x822020
lea esi, [esp + 0xf8]
mov ecx, esi
push ebx
call fcn.00836e60
mov ecx, edi
push esi
call fcn.00838b60
mov eax, dword [esp + 0x140]
cmp eax, 0xffffffff
je 0x821fc2
lea ecx, [esp + 0x118]
push ecx
lea ecx, [esp + 0x60]
push ecx
call dword [eax*4 + 0x942fc0]
add esp, 8
mov ebx, dword [esp + 0x58]
add ebx, 0x50
mov dword [esp + 0x140], 0xffffffff
mov esi, dword [esp + 0xfc]
test esi, esi
je 0x821f63
mov eax, dword [esp + 0x100]
mov ecx, esi
cmp eax, esi
jne 0x82200a
jmp 0x821f53
mov eax, edi
cmp edi, esi
je 0x821f4c
lea edi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x822000
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x822000
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x2c]
je 0x8220fc
mov eax, dword [esi + 4]
mov edx, dword [eax]
lea esi, [esp + 0x15c]
mov ecx, esi
push edi
push eax
call dword [edx + 8]
mov ecx, esi
call fcn.0060d3d0
call fcn.00839180
movzx eax, ax
lea ecx, [esp + 0x5c]
push 1
push eax
call fcn.00838000
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], eax
movsd xmm0, qword [esp + 0x5c]
movsd qword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x82220c
mov ebx, dword [esp + 0x20]
mov eax, ecx
mov dword [esp], ecx
cmp ebx, ecx
je 0x8221fc
mov edi, dword [esp]
jmp 0x8220c0
mov ecx, dword [ebx - 0x14]
mov edi, dword [esp]
mov dword [ebx - 0x10], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 4]
mov ebx, eax
cmp eax, edi
je 0x8221f4
lea eax, [ebx - 0x18]
mov esi, dword [ebx - 0x14]
test esi, esi
je 0x8220b6
mov dword [esp + 4], eax
mov eax, dword [ebx - 0x10]
mov ecx, esi
cmp eax, esi
jne 0x8220e6
jmp 0x8220a6
mov eax, edi
cmp edi, esi
je 0x8220a0
lea edi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x8220e0
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x8220e0
push str.external_openscreen_discovery_mdns_mdns_publisher.cc
push 1
call fcn.0075e090
add esp, 8
test al, al
je 0x8221e8
mov dword [esp + 0x5c], 1
mov dword [esp + 0x60], str.external_openscreen_discovery_mdns_mdns_publisher.cc
mov dword [esp + 0x64], 0x15f
mov dword [esp + 0x70], 0x866ac4
mov dword [esp + 0x68], 0x866be8
mov dword [esp + 0xa8], 0x866bfc
mov dword [esp + 0x6c], 0
mov esi, edi
lea edi, [esp + 0xa8]
mov ecx, edi
lea ebx, [esp + 0x74]
push ebx
call fcn.004cf350
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0xffffffff
mov dword [esp + 0x68], 0x866ab0
mov dword [esp + 0xa8], 0x866ad8
mov dword [esp + 0x70], 0x866ac4
mov ecx, ebx
call fcn.004cf9a0
mov dword [esp + 0x74], 0x865954
xorps xmm0, xmm0
movups xmmword [edi - 0x14], xmm0
mov edi, esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0xa4], 0x18
push 0x3a
push 0x942eea
lea eax, [esp + 0x78]
push eax
call fcn.00402f60
add esp, 0xc
push 0x1f
push 0x942f25
push eax
call fcn.00402f60
add esp, 0xc
lea ecx, [esp + 0x5c]
call fcn.0060f450
mov ebx, dword [esp + 0x58]
add ebx, 0x50
jmp 0x821f6b
mov eax, dword [esp + 0x1c]
lea edi, [esp + 0x10]
mov ecx, dword [esp]
mov dword [esp + 0x20], ecx
push eax
call fcn.0051c570
add esp, 4
movsd xmm0, qword [esp + 0x68]
movsd qword [esp + 0x1c], xmm0
mov eax, dword [esp + 0x70]
mov dword [esp + 0x24], eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x8222f4
mov ebx, dword [esp + 0x2c]
mov eax, ecx
mov dword [esp], ecx
cmp ebx, ecx
je 0x8222e4
mov edi, dword [esp]
jmp 0x82227c
mov ecx, dword [ebx - 0x4c]
mov edi, dword [esp]
mov dword [ebx - 0x48], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 4]
mov ebx, eax
cmp eax, edi
je 0x8222dc
mov eax, dword [ebx - 8]
cmp eax, 0xffffffff
je 0x822297
lea ecx, [ebx - 0x30]
push ecx
lea ecx, [esp + 0xc]
push ecx
call dword [eax*4 + 0x942fc0]
add esp, 8
lea eax, [ebx - 0x50]
mov dword [ebx - 8], 0xffffffff
mov esi, dword [ebx - 0x4c]
test esi, esi
je 0x822276
mov dword [esp + 4], eax
mov eax, dword [ebx - 0x48]
mov ecx, esi
cmp eax, esi
jne 0x8222c6
jmp 0x822266
mov eax, edi
cmp edi, esi
je 0x822260
lea edi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x8222c0
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x8222c0
mov eax, dword [esp + 0x28]
lea edi, [esp + 0x10]
mov ecx, dword [esp]
mov dword [esp + 0x2c], ecx
push eax
call fcn.0051c570
add esp, 4
movsd xmm0, qword [esp + 0x74]
movsd qword [esp + 0x28], xmm0
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x8223e4
mov ebx, dword [esp + 0x38]
mov eax, ecx
mov dword [esp], ecx
cmp ebx, ecx
je 0x8223d4
mov edi, dword [esp]
jmp 0x82236c
mov ecx, dword [ebx - 0x4c]
mov edi, dword [esp]
mov dword [ebx - 0x48], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 4]
mov ebx, eax
cmp eax, edi
je 0x8223cc
mov eax, dword [ebx - 8]
cmp eax, 0xffffffff
je 0x822387
lea ecx, [ebx - 0x30]
push ecx
lea ecx, [esp + 0xc]
push ecx
call dword [eax*4 + 0x942fc0]
add esp, 8
lea eax, [ebx - 0x50]
mov dword [ebx - 8], 0xffffffff
mov esi, dword [ebx - 0x4c]
test esi, esi
je 0x822366
mov dword [esp + 4], eax
mov eax, dword [ebx - 0x48]
mov ecx, esi
cmp eax, esi
jne 0x8223b6
jmp 0x822356
mov eax, edi
cmp edi, esi
je 0x822350
lea edi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x8223b0
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x8223b0
mov eax, dword [esp + 0x34]
lea edi, [esp + 0x10]
mov ecx, dword [esp]
mov dword [esp + 0x38], ecx
push eax
call fcn.0051c570
add esp, 4
movsd xmm0, qword [esp + 0x80]
movsd qword [esp + 0x34], xmm0
mov eax, dword [esp + 0x88]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x8224ed
mov ebx, dword [esp + 0x44]
mov eax, ecx
mov dword [esp], ecx
cmp ebx, ecx
je 0x8224d4
mov edi, dword [esp]
jmp 0x82246c
mov ecx, dword [ebx - 0x4c]
mov edi, dword [esp]
mov dword [ebx - 0x48], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 4]
mov ebx, eax
cmp eax, edi
je 0x8224cc
mov eax, dword [ebx - 8]
cmp eax, 0xffffffff
je 0x822487
lea ecx, [ebx - 0x30]
push ecx
lea ecx, [esp + 0xc]
push ecx
call dword [eax*4 + 0x942fc0]
add esp, 8
lea eax, [ebx - 0x50]
mov dword [ebx - 8], 0xffffffff
mov esi, dword [ebx - 0x4c]
test esi, esi
je 0x822466
mov dword [esp + 4], eax
mov eax, dword [ebx - 0x48]
mov ecx, esi
cmp eax, esi
jne 0x8224b6
jmp 0x822456
mov eax, edi
cmp edi, esi
je 0x822450
lea edi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x8224b0
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x8224b0
mov eax, dword [esp + 0x40]
lea edi, [esp + 0x10]
mov ecx, dword [esp]
mov dword [esp + 0x44], ecx
push eax
call fcn.0051c570
add esp, 4
mov ecx, dword [esp + 0x80]
jmp 0x8224ef
xor ecx, ecx
movsd xmm0, qword [esp + 0x8c]
movsd qword [esp + 0x40], xmm0
mov eax, dword [esp + 0x94]
mov dword [esp + 0x48], eax
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
test ecx, ecx
je 0x8225ea
mov ebx, dword [esp + 0x84]
mov eax, ecx
mov dword [esp], ecx
cmp ebx, ecx
je 0x8225d7
mov edi, dword [esp]
jmp 0x82256c
mov ecx, dword [ebx - 0x4c]
mov edi, dword [esp]
mov dword [ebx - 0x48], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 4]
mov ebx, eax
cmp eax, edi
je 0x8225cc
mov eax, dword [ebx - 8]
cmp eax, 0xffffffff
je 0x822587
lea ecx, [ebx - 0x30]
push ecx
lea ecx, [esp + 0xc]
push ecx
call dword [eax*4 + 0x942fc0]
add esp, 8
lea eax, [ebx - 0x50]
mov dword [ebx - 8], 0xffffffff
mov esi, dword [ebx - 0x4c]
test esi, esi
je 0x822566
mov dword [esp + 4], eax
mov eax, dword [ebx - 0x48]
mov ecx, esi
cmp eax, esi
jne 0x8225b6
jmp 0x822556
mov eax, edi
cmp edi, esi
je 0x822550
lea edi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x8225b0
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x8225b0
mov eax, dword [esp + 0x80]
lea edi, [esp + 0x10]
mov ecx, dword [esp]
mov dword [esp + 0x84], ecx
push eax
call fcn.0051c570
add esp, 4
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x8226a4
mov ebx, dword [esp + 0x78]
mov eax, ecx
mov dword [esp], ecx
cmp ebx, ecx
je 0x822694
mov edi, dword [esp]
jmp 0x82262c
mov ecx, dword [ebx - 0x4c]
mov edi, dword [esp]
mov dword [ebx - 0x48], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 4]
mov ebx, eax
cmp eax, edi
je 0x82268c
mov eax, dword [ebx - 8]
cmp eax, 0xffffffff
je 0x822647
lea ecx, [ebx - 0x30]
push ecx
lea ecx, [esp + 0xc]
push ecx
call dword [eax*4 + 0x942fc0]
add esp, 8
lea eax, [ebx - 0x50]
mov dword [ebx - 8], 0xffffffff
mov esi, dword [ebx - 0x4c]
test esi, esi
je 0x822626
mov dword [esp + 4], eax
mov eax, dword [ebx - 0x48]
mov ecx, esi
cmp eax, esi
jne 0x822676
jmp 0x822616
mov eax, edi
cmp edi, esi
je 0x822610
lea edi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x822670
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x822670
mov eax, dword [esp + 0x74]
lea edi, [esp + 0x10]
mov ecx, dword [esp]
mov dword [esp + 0x78], ecx
push eax
call fcn.0051c570
add esp, 4
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x822744
mov ebx, dword [esp + 0x6c]
mov eax, ecx
mov dword [esp], ecx
cmp ebx, ecx
je 0x822734
mov edi, dword [esp]
jmp 0x8226ec
mov ecx, dword [ebx - 0x14]
mov edi, dword [esp]
mov dword [ebx - 0x10], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 4]
mov ebx, eax
cmp eax, edi
je 0x82272c
lea eax, [ebx - 0x18]
mov esi, dword [ebx - 0x14]
test esi, esi
je 0x8226e6
mov dword [esp + 4], eax
mov eax, dword [ebx - 0x10]
mov ecx, esi
cmp eax, esi
jne 0x822716
jmp 0x8226d6
mov eax, edi
cmp edi, esi
je 0x8226d0
lea edi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x822710
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x822710
mov eax, dword [esp + 0x68]
lea edi, [esp + 0x10]
mov ecx, dword [esp]
mov dword [esp + 0x6c], ecx
push eax
call fcn.0051c570
add esp, 4
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x58]
jmp 0x821f6b
mov eax, dword [esp + 0xc]
mov dword [eax + 0x68], edi
mov edi, dword [esp + 0x40]
test edi, edi
je 0x82280d
mov ebx, dword [esp + 0x44]
mov eax, edi
cmp ebx, edi
je 0x822800
mov dword [esp], edi
jmp 0x82279c
mov ecx, dword [ebx - 0x4c]
mov edi, dword [esp]
mov dword [ebx - 0x48], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 4]
mov ebx, eax
cmp eax, edi
je 0x8227fc
mov eax, dword [ebx - 8]
cmp eax, 0xffffffff
je 0x8227b7
lea ecx, [ebx - 0x30]
push ecx
lea ecx, [esp + 0x60]
push ecx
call dword [eax*4 + 0x942fc0]
add esp, 8
lea eax, [ebx - 0x50]
mov dword [ebx - 8], 0xffffffff
mov esi, dword [ebx - 0x4c]
test esi, esi
je 0x822796
mov dword [esp + 4], eax
mov eax, dword [ebx - 0x48]
mov ecx, esi
cmp eax, esi
jne 0x8227e6
jmp 0x822786
mov eax, edi
cmp edi, esi
je 0x822780
lea edi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x8227e0
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x8227e0
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], edi
push eax
call fcn.0051c570
add esp, 4
mov edi, dword [esp + 0x34]
test edi, edi
je 0x8228bd
mov ebx, dword [esp + 0x38]
mov eax, edi
cmp ebx, edi
je 0x8228b0
mov dword [esp], edi
jmp 0x82284c
mov ecx, dword [ebx - 0x4c]
mov edi, dword [esp]
mov dword [ebx - 0x48], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 4]
mov ebx, eax
cmp eax, edi
je 0x8228ac
mov eax, dword [ebx - 8]
cmp eax, 0xffffffff
je 0x822867
lea ecx, [ebx - 0x30]
push ecx
lea ecx, [esp + 0x60]
push ecx
call dword [eax*4 + 0x942fc0]
add esp, 8
lea eax, [ebx - 0x50]
mov dword [ebx - 8], 0xffffffff
mov esi, dword [ebx - 0x4c]
test esi, esi
je 0x822846
mov dword [esp + 4], eax
mov eax, dword [ebx - 0x48]
mov ecx, esi
cmp eax, esi
jne 0x822896
jmp 0x822836
mov eax, edi
cmp edi, esi
je 0x822830
lea edi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x822890
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x822890
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], edi
push eax
call fcn.0051c570
add esp, 4
mov edi, dword [esp + 0x28]
test edi, edi
je 0x82296d
mov ebx, dword [esp + 0x2c]
mov eax, edi
cmp ebx, edi
je 0x822960
mov dword [esp], edi
jmp 0x8228fc
mov ecx, dword [ebx - 0x4c]
mov edi, dword [esp]
mov dword [ebx - 0x48], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 4]
mov ebx, eax
cmp eax, edi
je 0x82295c
mov eax, dword [ebx - 8]
cmp eax, 0xffffffff
je 0x822917
lea ecx, [ebx - 0x30]
push ecx
lea ecx, [esp + 0x60]
push ecx
call dword [eax*4 + 0x942fc0]
add esp, 8
lea eax, [ebx - 0x50]
mov dword [ebx - 8], 0xffffffff
mov esi, dword [ebx - 0x4c]
test esi, esi
je 0x8228f6
mov dword [esp + 4], eax
mov eax, dword [ebx - 0x48]
mov ecx, esi
cmp eax, esi
jne 0x822946
jmp 0x8228e6
mov eax, edi
cmp edi, esi
je 0x8228e0
lea edi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x822940
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x822940
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], edi
push eax
call fcn.0051c570
add esp, 4
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x8229fd
mov edi, dword [esp + 0x20]
mov eax, ebx
cmp edi, ebx
je 0x8229f0
mov dword [esp], ebx
jmp 0x8229ac
mov ecx, dword [edi - 0x14]
mov ebx, dword [esp]
mov dword [edi - 0x10], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 4]
mov edi, eax
cmp eax, ebx
je 0x8229ec
lea eax, [edi - 0x18]
mov esi, dword [edi - 0x14]
test esi, esi
je 0x8229a6
mov dword [esp + 4], eax
mov eax, dword [edi - 0x10]
mov ecx, esi
cmp eax, esi
jne 0x8229d6
jmp 0x822996
mov eax, ebx
cmp ebx, esi
je 0x822990
lea ebx, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x8229d0
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x8229d0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
push eax
call fcn.0051c570
add esp, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret