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

Disassembly:
sub esp, 0x1c0
push ebx
push ebp
xor ebx, ebx
mov ebp, ecx
mov dword [esp + 0x18], ebx
mov eax, dword [ebp + 0x1a0]
inc eax
test dword [ebp + 0x180], 0x1000
push esi
push edi
mov dword [esp + 0x24], eax
je 0x4d4e0c
mov eax, dword [ebp + 0xc4]
inc eax
mov dword [esp + 0x14], ebx
test eax, eax
jle 0x4d4e0c
mov dword [esp + 0x18], ebx
jmp 0x4d4ae0
mov esi, dword [ebp + 0xc0]
add esi, dword [esp + 0x18]
cmp byte [esi + 0x3d], 0
je 0x4d4def
mov eax, dword [esi + 0x30]
test eax, eax
je 0x4d4def
cmp dword [eax], 0x6ae0d4
je 0x4d4def
lea ecx, [ebp + 0x114]
push ecx
push esi
call fcn.004b86f0
add esp, 8
test al, al
je 0x4d4def
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4d4def
cmp dword [eax], 0x6ae0d4
je 0x4d4def
xor edi, edi
mov dword [esp + 0x10], edi
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x24]
jge 0x4d4b92
mov eax, dword [ebp + 0x19c]
mov ecx, dword [eax + edi + 4]
add eax, edi
mov eax, dword [eax]
mov dword [esp + 0x150], eax
lea eax, [esi + 0xc]
push eax
lea eax, [esp + 0x150]
lea edx, [ebp + 0x198]
push eax
or ebx, 1
mov dword [esp + 0x154], edx
mov dword [esp + 0x15c], ecx
call fcn.004b86f0
add esp, 8
test al, al
jne 0x4d4b92
mov al, 1
jmp 0x4d4b94
xor al, al
test bl, 1
je 0x4d4b9c
and ebx, 0xfffffffe
test al, al
je 0x4d4ba9
inc dword [esp + 0x10]
add edi, 0x20
jmp 0x4d4b40
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x10], ecx
jne 0x4d4def
cmp dword [esi + 0x20], 0
jne 0x4d4c9f
lea edx, [esi + 0x24]
push edx
lea eax, [esp + 0xf8]
push eax
mov dword [esp + 0xfc], str.xmlns
call fcn.004b87a0
add esp, 8
test al, al
je 0x4d4c9f
mov ecx, ebp
call fcn.004d0d10
mov edi, eax
xor eax, eax
mov dword [edi], eax
mov dword [edi + 8], eax
mov dword [edi + 4], eax
mov ecx, dword [esi + 0x30]
mov edx, dword [esi + 0x34]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x58]
mov dword [esp + 0x5c], edx
push ecx
lea edx, [esp + 0xec]
push edx
mov dword [esp + 0x68], eax
mov dword [esp + 0xf0], 0x5efb94
call fcn.004b87a0
add esp, 8
test al, al
jne 0x4d4c6f
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0xf4]
push ecx
mov dword [esp + 0xf8], 0x5ef920
call fcn.004b87a0
add esp, 8
test al, al
jne 0x4d4c6f
mov edx, dword [esp + 0x58]
mov dword [edi + 0xc], edx
mov eax, dword [esp + 0x5c]
mov dword [edi + 0x10], eax
mov ecx, dword [esp + 0x60]
jmp 0x4d4dec
push 0
lea edx, [esp + 0xe8]
push str.Illegal_namespace_declaration.
push edx
call fcn.004cfa80
add esp, 0xc
push eax
mov ecx, ebp
call fcn.004d0250
lea ecx, [esp + 0xe4]
call fcn.004010b0
jmp 0x4d4def
lea eax, [esi + 0x18]
push eax
lea ecx, [esp + 0x104]
push ecx
mov dword [esp + 0x108], str.xmlns
call fcn.004b87a0
add esp, 8
test al, al
je 0x4d4def
mov ecx, ebp
call fcn.004d0d10
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x2c]
mov edi, eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x88], edx
mov edx, dword [esi + 0x30]
mov dword [esp + 0x8c], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0x4c], edx
lea edx, [esp + 0x88]
mov dword [esp + 0x50], eax
mov dword [esp + 0x90], ecx
mov ecx, dword [esi + 0x38]
push edx
lea eax, [esp + 0xfc]
push eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x100], 0x673b6c
call fcn.004b87a0
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0xf8]
push edx
mov byte [esp + 0x2f], al
mov dword [esp + 0xfc], 0x5ef920
call fcn.004b87a0
add esp, 0x10
xor al, byte [esp + 0x1f]
jne 0x4d4d98
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x100]
push ecx
mov dword [esp + 0x104], 0x5efb94
call fcn.004b87a0
add esp, 8
test al, al
jne 0x4d4d98
cmp dword [esp + 0x54], 0
je 0x4d4d98
lea edx, [esp + 0x88]
push edx
lea eax, [esp + 0x3c]
push eax
mov dword [esp + 0x40], str.xmlns
call fcn.004b87a0
add esp, 8
test al, al
je 0x4d4dbd
push 0
lea ecx, [esp + 0x24]
push str.Illegal_namespace_declaration.
push ecx
call fcn.004cfa80
add esp, 0xc
push eax
mov ecx, ebp
call fcn.004d0250
lea ecx, [esp + 0x20]
call fcn.004010b0
mov edx, dword [esp + 0x88]
mov dword [edi], edx
mov eax, dword [esp + 0x8c]
mov dword [edi + 4], eax
mov ecx, dword [esp + 0x90]
mov dword [edi + 8], ecx
mov edx, dword [esp + 0x4c]
mov dword [edi + 0xc], edx
mov eax, dword [esp + 0x50]
mov dword [edi + 0x10], eax
mov ecx, dword [esp + 0x54]
mov dword [edi + 0x14], ecx
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 0xc4]
add dword [esp + 0x18], 0x40
inc eax
inc edx
cmp eax, edx
mov dword [esp + 0x14], eax
jl 0x4d4ae0
lea eax, [ebp + 0xfc]
push eax
lea ecx, [esp + 0x1c8]
push ecx
mov ecx, ebp
call fcn.004d13d0
mov edx, dword [eax]
mov dword [ebp + 0x108], edx
mov ecx, dword [eax + 4]
mov dword [ebp + 0x10c], ecx
mov edx, dword [eax + 8]
mov esi, dword [esp + 0x24]
mov dword [ebp + 0x110], edx
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [edx + ecx*8 + 0x24]
mov ecx, dword [ebp + 0x108]
mov dword [eax], ecx
mov edx, dword [ebp + 0x10c]
mov dword [eax + 4], edx
mov ecx, dword [ebp + 0x110]
mov dword [eax + 8], ecx
mov eax, dword [ebp + 0xa8]
mov ecx, dword [eax + 4]
cmp esi, ecx
lea edi, [ebp + 0xa8]
jg 0x4d4e97
test byte [eax + 0xc], 2
jne 0x4d4e93
cmp esi, dword [eax + 8]
jge 0x4d4e93
mov edx, ecx
sar edx, 1
cmp esi, edx
jl 0x4d4e97
mov eax, ecx
jmp 0x4d4ea6
push 0
push 0x38
push esi
push 0x48
call fcn.004d9320
add esp, 0x10
push eax
push esi
mov ecx, edi
call fcn.004d21c0
xor eax, eax
cmp esi, eax
mov dword [esp + 0x30], eax
jle 0x4d54ca
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], eax
mov eax, dword [edi]
mov eax, dword [eax]
cmp eax, 1
je 0x4d4edf
mov eax, dword [edi]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
push ecx
push edx
mov ecx, edi
call fcn.004d21c0
mov eax, dword [edi]
mov ecx, dword [esp + 0x2c]
lea edx, [eax + ecx + 0x10]
mov eax, dword [ebp + 0x19c]
add eax, dword [esp + 0x14]
mov dword [esp + 0x18], edx
mov ecx, dword [eax + 8]
xor edx, edx
cmp ecx, edx
je 0x4d4f19
mov edx, dword [eax]
dec ecx
lea esi, [ebp + 0x198]
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa8], ecx
jmp 0x4d4f27
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa8], edx
mov dword [esp + 0xa4], edx
mov ecx, dword [eax + 8]
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov dword [esp + 0x20], edx
add edx, ecx
mov dword [esp + 0x1b0], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x38], esi
sub esi, ecx
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
sub eax, ecx
mov dword [esp + 0x10c], eax
add edx, ecx
lea eax, [ebp + 0x198]
mov dword [esp + 0x108], edx
test eax, eax
je 0x4d4f74
mov ecx, dword [esp + 0x3c]
jmp 0x4d4f92
mov ecx, 0x6ae0d4
or ebx, 0x100
mov dword [esp + 0x3c], ecx
mov eax, ecx
mov edx, 1
lock xadd dword [eax], edx
lea eax, [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x64], eax
mov edx, 1
lock xadd dword [eax], edx
test ebx, 0x100
je 0x4d4fc3
and ebx, 0xfffffeff
mov eax, ecx
or edx, 0xffffffff
lock xadd dword [eax], edx
jne 0x4d4fc3
push ecx
call fcn.004b7f30
add esp, 4
mov eax, dword [esp + 0x1b0]
lea ecx, [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], esi
call fcn.004b7f40
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x64]
mov dword [eax + 8], ecx
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4d500c
mov ecx, dword [esp + 0x64]
push ecx
call fcn.004b7f30
add esp, 4
lea esi, [ebp + 0x198]
test esi, esi
je 0x4d501e
mov ecx, dword [esp + 0x48]
mov eax, esi
jmp 0x4d503c
mov ecx, 0x6ae0d4
or ebx, 0x200
mov dword [esp + 0x48], ecx
mov edx, ecx
mov eax, 1
lock xadd dword [edx], eax
lea eax, [esp + 0x48]
mov eax, dword [eax]
mov dword [esp + 0x7c], eax
mov edx, 1
lock xadd dword [eax], edx
test ebx, 0x200
je 0x4d506d
and ebx, 0xfffffdff
mov eax, ecx
or edx, 0xffffffff
lock xadd dword [eax], edx
jne 0x4d506d
push ecx
call fcn.004b7f30
add esp, 4
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x7c]
add ecx, 0x18
push edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x24], ecx
call fcn.004b7f40
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov eax, dword [esp + 0x7c]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x4d50ca
mov edx, dword [esp + 0x7c]
push edx
call fcn.004b7f30
add esp, 4
test esi, esi
je 0x4d50d6
mov ecx, dword [esp + 0x40]
mov eax, esi
jmp 0x4d50f4
mov ecx, 0x6ae0d4
or ebx, 0x400
mov dword [esp + 0x40], ecx
mov eax, ecx
mov edx, 1
lock xadd dword [eax], edx
lea eax, [esp + 0x40]
mov eax, dword [eax]
mov dword [esp + 0x94], eax
mov edx, 1
lock xadd dword [eax], edx
test ebx, 0x400
je 0x4d5128
and ebx, 0xfffffbff
mov eax, ecx
or edx, 0xffffffff
lock xadd dword [eax], edx
jne 0x4d5128
push ecx
call fcn.004b7f30
add esp, 4
mov ecx, dword [esp + 0x10c]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x108]
lea edx, [esp + 0x94]
mov dword [esp + 0x9c], ecx
add esi, 0x24
push edx
mov ecx, esi
mov dword [esp + 0x9c], eax
call fcn.004b7f40
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x94]
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4d518e
mov ecx, dword [esp + 0x94]
push ecx
call fcn.004b7f30
add esp, 4
cmp dword [esp + 0xa8], 0
je 0x4d5264
lea edx, [esp + 0xa0]
push edx
lea eax, [esp + 0x15c]
push eax
mov ecx, ebp
call fcn.004d13d0
mov eax, dword [esp + 0x158]
test eax, eax
je 0x4d51c4
mov ecx, dword [esp + 0x44]
jmp 0x4d51e2
mov ecx, 0x6ae0d4
or ebx, 0x800
mov dword [esp + 0x44], ecx
mov edx, ecx
mov eax, 1
lock xadd dword [edx], eax
lea eax, [esp + 0x44]
mov eax, dword [eax]
mov dword [esp + 0x70], eax
mov edx, 1
lock xadd dword [eax], edx
test ebx, 0x800
je 0x4d5213
and ebx, 0xfffff7ff
mov eax, ecx
or edx, 0xffffffff
lock xadd dword [eax], edx
jne 0x4d5213
push ecx
call fcn.004b7f30
add esp, 4
mov ecx, dword [esp + 0x160]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x15c]
lea edx, [esp + 0x70]
mov dword [esp + 0x78], ecx
add esi, 0xc
push edx
mov ecx, esi
mov dword [esp + 0x78], eax
call fcn.004b7f40
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x70]
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4d5264
mov ecx, dword [esp + 0x70]
push ecx
call fcn.004b7f30
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x4d54af
mov esi, dword [esp + 0x18]
mov dword [esp + 0x10], 0
mov dword [esp + 0x28], eax
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov dword [esp + 0x174], eax
mov eax, dword [edi]
mov dword [esp + 0x170], esi
mov dword [esp + 0x178], ecx
mov edx, dword [eax]
or ebx, 6
cmp edx, 1
je 0x4d52b8
mov eax, dword [edi]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
push ecx
push edx
mov ecx, edi
call fcn.004d21c0
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + ecx + 0x18]
lea eax, [eax + ecx + 0x10]
mov ecx, dword [eax + 4]
mov dword [esp + 0x13c], edx
lea edx, [esp + 0x170]
mov dword [esp + 0x134], eax
push edx
lea eax, [esp + 0x138]
push eax
mov dword [esp + 0x140], ecx
call fcn.004b86f0
add esp, 8
test al, al
je 0x4d540f
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
lea eax, [esi + 0xc]
mov dword [esp + 0x164], eax
mov eax, dword [edi]
mov dword [esp + 0x168], ecx
mov dword [esp + 0x16c], edx
mov ecx, dword [eax]
or ebx, 0x18
cmp ecx, 1
je 0x4d5339
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
push edx
push eax
mov ecx, edi
call fcn.004d21c0
mov ecx, dword [edi]
mov edx, dword [esp + 0x10]
lea eax, [ecx + edx + 0x1c]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x164]
mov dword [esp + 0x120], ecx
push eax
lea ecx, [esp + 0x120]
push ecx
mov dword [esp + 0x12c], edx
call fcn.004b86f0
add esp, 8
test al, al
je 0x4d540f
test dword [ebp + 0x180], 0x1000
jne 0x4d540b
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
lea edx, [esi + 0x18]
mov dword [esp + 0x12c], eax
mov eax, dword [edi]
mov dword [esp + 0x128], edx
mov dword [esp + 0x130], ecx
mov edx, dword [eax]
or ebx, 0x60
cmp edx, 1
je 0x4d53c9
mov eax, dword [edi]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
push ecx
push edx
mov ecx, edi
call fcn.004d21c0
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + eax + 0x30]
lea eax, [ecx + eax + 0x28]
mov ecx, dword [eax + 4]
mov dword [esp + 0x148], edx
lea edx, [esp + 0x128]
mov dword [esp + 0x140], eax
push edx
lea eax, [esp + 0x144]
push eax
mov dword [esp + 0x14c], ecx
call fcn.004b86f0
add esp, 8
test al, al
je 0x4d540f
mov al, 1
jmp 0x4d5411
xor al, al
test bl, 0x40
je 0x4d5419
and ebx, 0xffffffbf
test bl, 0x20
je 0x4d5421
and ebx, 0xffffffdf
test bl, 0x10
je 0x4d5429
and ebx, 0xffffffef
test bl, 8
je 0x4d5431
and ebx, 0xfffffff7
test bl, 4
je 0x4d5439
and ebx, 0xfffffffb
test bl, 2
je 0x4d5441
and ebx, 0xfffffffd
test al, al
je 0x4d549b
push 0
push 0
push str.Attribute_redefined.
lea ecx, [esp + 0x40]
push str.QXmlStream
push ecx
call fcn.004d9ba0
add esp, 0x14
lea edx, [esp + 0x34]
push edx
lea ecx, [ebp + 0x84]
mov dword [ebp + 0x80], 3
call fcn.004b7f40
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x7c], 1
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x4d549b
mov edx, dword [esp + 0x34]
push edx
call fcn.004b7f30
add esp, 4
add dword [esp + 0x10], 0x38
sub dword [esp + 0x28], 1
jne 0x4d5280
mov eax, dword [esp + 0x30]
add dword [esp + 0x2c], 0x38
add dword [esp + 0x14], 0x20
inc eax
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
jl 0x4d4ec5
xor eax, eax
mov ecx, dword [ebp + 0xc4]
inc ecx
mov dword [esp + 0x28], eax
test ecx, ecx
jle 0x4d57f3
mov dword [esp + 0x14], eax
mov edi, dword [ebp + 0xc0]
add edi, dword [esp + 0x14]
cmp byte [edi + 0x3d], 0
jne 0x4d57d6
mov eax, dword [edi + 0x30]
test eax, eax
je 0x4d57d6
cmp dword [eax], 0x6ae0d4
je 0x4d57d6
lea edx, [ebp + 0x114]
push edx
push edi
call fcn.004b86f0
add esp, 8
test al, al
je 0x4d57d6
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4d57d6
cmp dword [eax], 0x6ae0d4
je 0x4d57d6
xor esi, esi
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x24]
jge 0x4d5596
mov eax, dword [ebp + 0x19c]
mov ecx, dword [eax + esi + 4]
add eax, esi
mov eax, dword [eax]
mov dword [esp + 0x114], eax
lea eax, [edi + 0xc]
push eax
lea eax, [esp + 0x114]
lea edx, [ebp + 0x198]
push eax
or ebx, 0x80
mov dword [esp + 0x118], edx
mov dword [esp + 0x120], ecx
call fcn.004b86f0
add esp, 8
test al, al
jne 0x4d5596
mov al, 1
jmp 0x4d5598
xor al, al
test bl, bl
jns 0x4d55a2
and ebx, 0xffffff7f
test al, al
je 0x4d55af
inc dword [esp + 0x10]
add esi, 0x20
jmp 0x4d5541
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x10], ecx
jne 0x4d57d6
mov ecx, 0x6ae0d4
mov dword [esp + 0xac], ecx
mov edx, ecx
mov eax, 1
lock xadd dword [edx], eax
xor eax, eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], ecx
mov esi, 1
lock xadd dword [edx], esi
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ecx
mov esi, 1
lock xadd dword [edx], esi
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
mov edx, 1
lock xadd dword [ecx], edx
and dword [esp + 0xe0], 0xfffffffe
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
lea eax, [edi + 0x24]
push eax
lea ecx, [esp + 0x180]
call fcn.004cf9c0
mov esi, eax
push esi
lea ecx, [esp + 0xb0]
call fcn.004b7f40
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x17c]
mov dword [esp + 0xb0], ecx
mov edx, dword [esi + 8]
mov dword [esp + 0xb4], edx
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x4d5699
mov edx, dword [esp + 0x17c]
push edx
call fcn.004b7f30
add esp, 4
lea eax, [edi + 0xc]
push eax
lea ecx, [esp + 0x198]
call fcn.004cf9c0
mov esi, eax
push esi
lea ecx, [esp + 0xc8]
call fcn.004b7f40
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x194]
mov dword [esp + 0xc8], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0xcc], ecx
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4d56ec
mov ecx, dword [esp + 0x194]
push ecx
call fcn.004b7f30
add esp, 4
lea eax, [edi + 0x30]
push eax
lea ecx, [esp + 0x1a4]
call fcn.004cf9c0
mov esi, eax
push esi
lea ecx, [esp + 0xd4]
call fcn.004b7f40
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x1a0]
mov dword [esp + 0xd4], edx
mov eax, dword [esi + 8]
mov dword [esp + 0xd8], eax
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4d573f
mov eax, dword [esp + 0x1a0]
push eax
call fcn.004b7f30
add esp, 4
cmp dword [edi + 0x20], 0
je 0x4d57af
add edi, 0x18
push edi
lea ecx, [esp + 0x1bc]
push ecx
mov ecx, ebp
call fcn.004d13d0
lea edx, [esp + 0x1b8]
push edx
lea ecx, [esp + 0x18c]
call fcn.004cf9c0
mov esi, eax
push esi
lea ecx, [esp + 0xbc]
call fcn.004b7f40
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x188]
mov dword [esp + 0xbc], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0xc0], ecx
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4d57af
mov ecx, dword [esp + 0x188]
push ecx
call fcn.004b7f30
add esp, 4
or dword [esp + 0xe0], 1
lea edx, [esp + 0xac]
push edx
lea ecx, [ebp + 0xa8]
call fcn.004d3210
lea ecx, [esp + 0xac]
call fcn.004d0770
mov eax, dword [esp + 0x28]
mov ecx, dword [ebp + 0xc4]
add dword [esp + 0x14], 0x40
inc eax
inc ecx
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x4d54e1
pop edi
pop esi
mov dword [ebp + 0x1a0], 0xffffffff
pop ebp
pop ebx
add esp, 0x1c0
ret