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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x4f9832
mov eax, dword fs:[0]
push eax
sub esp, 0x24c
mov eax, dword [0x529748]
xor eax, esp
mov dword [esp + 0x244], eax
push esi
push edi
mov eax, dword [0x529748]
xor eax, esp
push eax
lea eax, [esp + 0x258]
mov dword fs:[0], eax
mov dword [esp + 0x1c], ecx
xor ecx, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x180], ecx
call fcn.00415c00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ab5ac
push 0x80004005
call fcn.004162a0
mov eax, dword [edx]
mov ecx, edx
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1ac], eax
lea ecx, [esp + 0x1ac]
mov dword [esp + 0x260], 0
call fcn.004a7bb0
mov esi, dword [esp + 0x1ac]
cmp dword [esi - 0xc], 0
jne 0x4ab612
push 0x526c18
lea eax, [esp + 0x24]
mov dword [esp + 0x28], 3
push eax
mov dword [esp + 0x30], 0x3b
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], 0x513484
call fcn.004c22fb
call fcn.00415c00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ab62e
push 0x80004005
call fcn.004162a0
mov eax, dword [edx]
mov ecx, edx
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c0], eax
mov byte [esp + 0x260], 1
call fcn.00415c00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ab665
push 0x80004005
call fcn.004162a0
mov eax, dword [edx]
mov ecx, edx
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1b4], eax
mov edx, str.M3xSyUxaHEpWDo3Impg
mov byte [esp + 0x260], 2
lea ecx, [esp + 0x3c]
call fcn.004bba60
mov byte [esp + 0x260], 3
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
sar eax, 1
jne 0x4ab6ab
push str.invalid_vector_T__subscript
call fcn.004bc548
push esi
push ecx
lea eax, [esp + 0x1c8]
push eax
call fcn.0049c630
mov byte [esp + 0x26c], 2
add esp, 0xc
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4ab6d6
push eax
call fcn.004191e0
add esp, 4
push 0x70
lea eax, [esp + 0x1e0]
push 0
push eax
call fcn.004c1b90
add esp, 0xc
lea ecx, [esp + 0x1dc]
call fcn.00407f00
xorps xmm0, xmm0
movdqa xmmword [esp + 0x194], xmm0
psrldq xmm0, 8
movd eax, xmm0
mov dword [esp + 0x1a0], 0
and eax, 0xfffffe00
mov dword [esp + 0x19c], eax
mov byte [esp + 0x260], 6
call fcn.00415c00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ab746
push 0x80004005
call fcn.004162a0
mov eax, dword [edx]
mov ecx, edx
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1b0], eax
mov byte [esp + 0x260], 7
call fcn.00415c00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ab77d
push 0x80004005
call fcn.004162a0
mov eax, dword [edx]
mov ecx, edx
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1b8], eax
mov byte [esp + 0x260], 8
call fcn.00415c00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ab7b4
push 0x80004005
call fcn.004162a0
mov eax, dword [edx]
mov ecx, edx
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x188], eax
mov byte [esp + 0x260], 9
call fcn.00415c00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ab7eb
push 0x80004005
call fcn.004162a0
mov eax, dword [edx]
mov ecx, edx
mov eax, dword [eax + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x190], edi
mov byte [esp + 0x260], 0xa
call fcn.00415c00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ab822
push 0x80004005
call fcn.004162a0
mov eax, dword [edx]
mov ecx, edx
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18c], eax
mov byte [esp + 0x260], 0xb
call fcn.00415c00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4ab859
push 0x80004005
call fcn.004162a0
mov eax, dword [edx]
mov ecx, edx
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1bc], eax
mov byte [esp + 0x260], 0xc
mov eax, dword [esp + 0x1c0]
add eax, 0xfffffff0
push ecx
mov ecx, eax
mov dword [esp + 0x50], eax
mov esi, esp
call fcn.0049ca30
add eax, 0x10
lea edx, [esp + 0x1b8]
mov ecx, 3
mov dword [esi], eax
call fcn.004bb070
add esp, 4
test eax, eax
jne 0x4ac66a
push 3
push dword [esp + 0x1b8]
mov dword [esp + 0x18c], eax
lea ecx, [esp + 0x7c]
lea eax, [esp + 0x80]
mov dword [esp + 0x7c], eax
call fcn.004162e0
mov byte [esp + 0x260], 0xd
lea ecx, [esp + 0x184]
push dword [esp + 0x74]
call fcn.00416150
mov byte [esp + 0x260], 0xf
lea ecx, [esp + 0x78]
mov eax, dword [esp + 0x74]
cmp eax, ecx
je 0x4ab906
push eax
call fcn.004be015
add esp, 4
push dword [esp + 0x184]
lea ecx, [esp + 0x1c8]
call fcn.00416790
push ecx
lea eax, [esp + 0x198]
mov byte [esp + 0x264], 0x10
push eax
lea eax, [esp + 0x1cc]
push eax
lea ecx, [esp + 0x1e8]
call fcn.00408030
test al, al
jne 0x4ab971
push 0x526c18
lea eax, [esp + 0x24]
mov dword [esp + 0x28], 3
push eax
mov dword [esp + 0x30], 0xa
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], 0x513484
call fcn.004c22fb
mov eax, dword [esp + 0x19c]
test al, al
je 0x4ab984
cmp al, 7
jne 0x4abafa
mov edx, str.Iy0
lea ecx, [esp + 0x20]
call fcn.004bbca0
mov byte [esp + 0x260], 0x11
mov ecx, 1
mov dword [esp + 0x18], ecx
mov dword [esp + 0x180], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
jne 0x4ab9bd
push str.invalid_vector_T__subscript
call fcn.004bc548
push ecx
push ecx
lea ecx, [esp + 0x19c]
call fcn.0040be70
cmp byte [eax + 8], 0
je 0x4abafa
mov edx, str.LzE
lea ecx, [esp + 0x50]
call fcn.004bbca0
mov ecx, 3
mov dword [esp + 0x260], 0x12
mov dword [esp + 0x18], ecx
mov dword [esp + 0x180], ecx
mov ecx, eax
push 0
call fcn.00416660
push ecx
push eax
lea ecx, [esp + 0x19c]
call fcn.0040be70
cmp byte [eax + 8], 0
je 0x4abafa
mov edx, str.LiU
lea ecx, [esp + 0x5c]
call fcn.004bbca0
mov ecx, 7
mov dword [esp + 0x260], 0x13
mov dword [esp + 0x18], ecx
mov dword [esp + 0x180], ecx
mov ecx, eax
push 0
call fcn.00416660
push ecx
push eax
lea ecx, [esp + 0x19c]
call fcn.0040be70
cmp byte [eax + 8], 0
je 0x4abafa
mov edx, str.MQ
lea ecx, [esp + 0x68]
call fcn.004bbca0
mov ecx, 0xf
mov dword [esp + 0x260], 0x14
mov dword [esp + 0x18], ecx
mov dword [esp + 0x180], ecx
mov ecx, eax
push 0
call fcn.00416660
push ecx
push eax
lea ecx, [esp + 0x19c]
call fcn.0040be70
cmp byte [eax + 8], 0
je 0x4abafa
mov edx, str.JiI7KzAzHDAp
lea ecx, [esp + 0x3c]
call fcn.004bbca0
mov ecx, 0x1f
mov dword [esp + 0x260], 0x15
mov dword [esp + 0x18], ecx
mov dword [esp + 0x180], ecx
mov ecx, eax
push 0
call fcn.00416660
push ecx
push eax
lea ecx, [esp + 0x19c]
call fcn.0040be70
mov byte [esp + 0x17], 0
cmp byte [eax + 8], 0
jne 0x4abaff
mov byte [esp + 0x17], 1
mov eax, dword [esp + 0x18]
test al, 0x10
je 0x4abb1b
and eax, 0xffffffef
lea ecx, [esp + 0x3c]
mov dword [esp + 0x18], eax
call fcn.00415770
mov eax, dword [esp + 0x18]
test al, 8
je 0x4abb33
and eax, 0xfffffff7
lea ecx, [esp + 0x68]
mov dword [esp + 0x18], eax
call fcn.00415770
mov eax, dword [esp + 0x18]
test al, 4
je 0x4abb4b
and eax, 0xfffffffb
lea ecx, [esp + 0x5c]
mov dword [esp + 0x18], eax
call fcn.00415770
mov eax, dword [esp + 0x18]
test al, 2
je 0x4abb63
and eax, 0xfffffffd
lea ecx, [esp + 0x50]
mov dword [esp + 0x18], eax
call fcn.00415770
mov eax, dword [esp + 0x18]
mov dword [esp + 0x260], 0x10
test al, 1
je 0x4abb7b
lea ecx, [esp + 0x20]
call fcn.00415770
cmp byte [esp + 0x17], 0
je 0x4abbb1
push 0x526c18
lea eax, [esp + 0x24]
mov dword [esp + 0x28], 3
push eax
mov dword [esp + 0x30], 0xb
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], 0x513484
call fcn.004c22fb
mov edx, str.Iy0
lea ecx, [esp + 0x20]
call fcn.004bbca0
mov byte [esp + 0x260], 0x16
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
jne 0x4abbda
push str.invalid_vector_T__subscript
call fcn.004bc548
push ecx
push ecx
lea ecx, [esp + 0x19c]
call fcn.0040be70
lea ecx, [esp + 0x1b0]
push dword [eax]
call fcn.00416110
lea ecx, [esp + 0x20]
mov byte [esp + 0x260], 0x10
call fcn.00415770
push 0xfde9
push dword [esp + 0x1b4]
lea eax, [esp + 0x80]
lea ecx, [esp + 0x7c]
mov dword [esp + 0x7c], eax
call fcn.0049b520
mov esi, dword [esp + 0x1c]
mov byte [esp + 0x260], 0x17
push dword [esp + 0x74]
lea ecx, [esi + 0x10]
call fcn.0048dfd0
mov byte [esp + 0x260], 0x10
lea ecx, [esp + 0x78]
mov eax, dword [esp + 0x74]
cmp eax, ecx
je 0x4abc5c
push eax
call fcn.004be015
add esp, 4
mov edx, str.LzE
lea ecx, [esp + 0x20]
call fcn.004bbca0
mov byte [esp + 0x260], 0x18
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
jne 0x4abc85
push str.invalid_vector_T__subscript
call fcn.004bc548
push ecx
push ecx
lea ecx, [esp + 0x19c]
call fcn.0040be70
lea ecx, [esp + 0x1b8]
push dword [eax]
call fcn.00416110
lea ecx, [esp + 0x20]
mov byte [esp + 0x260], 0x10
call fcn.00415770
push 0xfde9
push dword [esp + 0x1bc]
lea eax, [esp + 0x80]
lea ecx, [esp + 0x7c]
mov dword [esp + 0x7c], eax
call fcn.0049b520
mov byte [esp + 0x260], 0x19
lea ecx, [esi + 0xc]
push dword [esp + 0x74]
call fcn.0049bb30
mov byte [esp + 0x260], 0x10
lea ecx, [esp + 0x78]
mov eax, dword [esp + 0x74]
cmp eax, ecx
je 0x4abd03
push eax
call fcn.004be015
add esp, 4
mov edx, str.LiU
lea ecx, [esp + 0x20]
call fcn.004bbca0
mov byte [esp + 0x260], 0x1a
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
jne 0x4abd2c
push str.invalid_vector_T__subscript
call fcn.004bc548
push ecx
push ecx
lea ecx, [esp + 0x19c]
call fcn.0040be70
lea ecx, [esp + 0x188]
push dword [eax]
call fcn.00416110
lea ecx, [esp + 0x20]
mov byte [esp + 0x260], 0x10
call fcn.00415770
mov esi, dword [esp + 0x188]
lea eax, [esp + 0x78]
push 0xfde9
push esi
lea ecx, [esp + 0x7c]
mov dword [esp + 0x7c], eax
call fcn.0049b520
mov eax, dword [esp + 0x1c]
add eax, 4
mov byte [esp + 0x260], 0x1b
push dword [esp + 0x74]
mov ecx, eax
mov dword [esp + 0x4c], eax
call fcn.0049bb30
mov byte [esp + 0x260], 0x10
lea ecx, [esp + 0x78]
mov eax, dword [esp + 0x74]
cmp eax, ecx
je 0x4abdb2
push eax
call fcn.004be015
add esp, 4
mov edx, str.MQ
lea ecx, [esp + 0x20]
call fcn.004bbca0
mov byte [esp + 0x260], 0x1c
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
jne 0x4abddb
push str.invalid_vector_T__subscript
call fcn.004bc548
push ecx
push ecx
lea ecx, [esp + 0x19c]
call fcn.0040be70
lea ecx, [esp + 0x1bc]
push dword [eax]
call fcn.00416110
lea ecx, [esp + 0x20]
mov byte [esp + 0x260], 0x10
call fcn.00415770
push 0xfde9
push dword [esp + 0x1c0]
lea eax, [esp + 0x80]
lea ecx, [esp + 0x7c]
mov dword [esp + 0x7c], eax
call fcn.0049b520
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x260], 0x1d
push dword [esp + 0x74]
lea ecx, [ecx + 8]
call fcn.0049bb30
mov byte [esp + 0x260], 0x10
lea ecx, [esp + 0x78]
mov eax, dword [esp + 0x74]
cmp eax, ecx
je 0x4abe5d
push eax
call fcn.004be015
add esp, 4
mov edx, str.JSArCyIl
lea ecx, [esp + 0x20]
call fcn.004bbca0
mov byte [esp + 0x260], 0x1e
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
jne 0x4abe86
push str.invalid_vector_T__subscript
call fcn.004bc548
push ecx
push ecx
lea ecx, [esp + 0x19c]
call fcn.0040be70
lea ecx, [esp + 0x20]
cmp byte [eax + 8], 0
mov byte [esp + 0x260], 0x10
setne byte [esp + 0x17]
call fcn.00415770
cmp byte [esp + 0x17], 0
je 0x4ac097
mov edx, str.JSArCyIl
lea ecx, [esp + 0x20]
call fcn.004bbca0
push 0
mov ecx, eax
mov byte [esp + 0x264], 0x1f
call fcn.00416660
push ecx
push eax
lea ecx, [esp + 0x19c]
call fcn.0040be70
lea ecx, [esp + 0x190]
push dword [eax]
call fcn.00416110
lea ecx, [esp + 0x20]
mov byte [esp + 0x260], 0x10
call fcn.00415770
mov edx, 0x507b20
mov dword [esp + 0x30], 0
lea ecx, [esp + 0x20]
mov dword [esp + 0x180], 0
call fcn.004bbca0
lea ecx, [esp + 0x30]
mov byte [esp + 0x260], 0x20
push ecx
push 0
mov ecx, eax
call fcn.00416660
push eax
lea eax, [esp + 0x188]
push eax
lea ecx, [esp + 0x19c]
call fcn.00495940
lea ecx, [esp + 0x20]
mov byte [esp + 0x260], 0x22
call fcn.00415770
mov eax, dword [esp + 0x180]
cmp dword [eax - 0xc], 0
je 0x4ac07c
mov ecx, dword [esp + 0x1c]
add ecx, 0x14
or edi, 0xffffffff
mov dword [esp + 0x38], ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00416150
lea eax, [esp + 0x18]
mov byte [esp + 0x260], 0x23
mov ecx, dword [esp + 0x38]
push eax
call fcn.004974b0
mov byte [esp + 0x260], 0x22
mov ecx, edi
mov edx, dword [esp + 0x18]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4abfc6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0x507b20
lea ecx, [esp + 0x3c]
call fcn.004bbca0
mov byte [esp + 0x260], 0x24
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
je 0x4ab6a1
lea eax, [esp + 0x30]
push eax
push ecx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x19c]
call fcn.00495940
push eax
lea ecx, [esp + 0x184]
mov byte [esp + 0x264], 0x25
call fcn.0049baa0
mov byte [esp + 0x260], 0x24
mov ecx, edi
mov edx, dword [esp + 0x34]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac03a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x260], 0x22
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4ac06b
push eax
call fcn.004191e0
add esp, 4
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x180]
cmp dword [eax - 0xc], 0
jne 0x4abf81
lea ecx, [esp + 0x180]
mov byte [esp + 0x260], 0x10
call fcn.00415730
mov edi, dword [esp + 0x190]
mov edx, str.JiI7KzAzHDAp
lea ecx, [esp + 0x20]
call fcn.004bbca0
mov byte [esp + 0x260], 0x26
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
jne 0x4ac0c0
push str.invalid_vector_T__subscript
call fcn.004bc548
push ecx
push ecx
lea ecx, [esp + 0x19c]
call fcn.0040be70
lea ecx, [esp + 0x20]
cmp byte [eax + 8], 0
mov byte [esp + 0x260], 0x10
setne byte [esp + 0x17]
call fcn.00415770
cmp byte [esp + 0x17], 0
je 0x4ac2c9
mov edx, str.JiI7KzAzHDAp
lea ecx, [esp + 0x20]
call fcn.004bbca0
push 0
mov ecx, eax
mov byte [esp + 0x264], 0x27
call fcn.00416660
push ecx
push eax
lea ecx, [esp + 0x19c]
call fcn.0040be70
lea ecx, [esp + 0x18c]
push dword [eax]
call fcn.00416110
lea ecx, [esp + 0x20]
mov byte [esp + 0x260], 0x10
call fcn.00415770
mov edx, 0x507b20
mov dword [esp + 0x18], 0
lea ecx, [esp + 0x20]
mov dword [esp + 0x180], 0
call fcn.004bbca0
lea ecx, [esp + 0x18]
mov byte [esp + 0x260], 0x28
push ecx
push 0
mov ecx, eax
call fcn.00416660
push eax
lea eax, [esp + 0x188]
push eax
lea ecx, [esp + 0x198]
call fcn.00495940
lea ecx, [esp + 0x20]
mov byte [esp + 0x260], 0x2a
call fcn.00415770
mov eax, dword [esp + 0x180]
cmp dword [eax - 0xc], 0
je 0x4ac2bd
mov ecx, dword [esp + 0x1c]
add ecx, 0x20
mov dword [esp + 0x34], ecx
jmp 0x4ac1c0
push eax
lea ecx, [esp + 0x34]
call fcn.00416150
lea eax, [esp + 0x30]
mov byte [esp + 0x260], 0x2b
mov ecx, dword [esp + 0x34]
push eax
call fcn.004974b0
mov byte [esp + 0x260], 0x2a
or ecx, 0xffffffff
mov edx, dword [esp + 0x30]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac206
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0x507b20
lea ecx, [esp + 0x3c]
call fcn.004bbca0
mov byte [esp + 0x260], 0x2c
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
je 0x4ab6a1
lea eax, [esp + 0x18]
push eax
push ecx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x198]
call fcn.00495940
push eax
lea ecx, [esp + 0x184]
mov byte [esp + 0x264], 0x2d
call fcn.0049baa0
mov byte [esp + 0x260], 0x2c
or ecx, 0xffffffff
mov edx, dword [esp + 0x38]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac27b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x260], 0x2a
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4ac2ac
push eax
call fcn.004191e0
add esp, 4
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x180]
cmp dword [eax - 0xc], 0
jne 0x4ac1c0
lea ecx, [esp + 0x180]
call fcn.00415730
lea ecx, [esp + 0x1c4]
call fcn.00416dc0
mov byte [esp + 0x260], 0xc
or ecx, 0xffffffff
mov edx, dword [esp + 0x184]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac2fe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
call fcn.0049baa0
mov ecx, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x18], edx
mov eax, dword [ecx + 0x24]
sub eax, dword [ecx + 0x20]
sar eax, 2
test eax, eax
je 0x4ac4cd
or esi, 0xffffffff
lea esp, [esp]
mov eax, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x20]
sub eax, ecx
sar eax, 2
cmp eax, edx
jbe 0x4ab6a1
mov ecx, dword [ecx + edx*4]
sub ecx, 0x10
call fcn.0049ba40
add eax, 0x10
mov dword [esp + 0x180], eax
push 0x50cffc
lea ecx, [esp + 0x34]
mov byte [esp + 0x264], 0x2e
call fcn.00416150
lea eax, [esp + 0x30]
mov byte [esp + 0x260], 0x2f
push eax
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x188]
lea ecx, [ecx + 0x38]
call fcn.004ab190
mov dword [esp + 0x40], eax
add esp, 8
mov byte [esp + 0x260], 0x2e
mov edx, esi
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov dword [esp + 0x34], eax
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ac3c2
mov ecx, dword [eax]
push dword [esp + 0x34]
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esp + 0x38], 0
jne 0x4ac48d
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x4ab5a2
mov esi, dword [esp + 0x180]
push ecx
push esi
call fcn.004c1736
add esp, 8
test eax, eax
je 0x4ac449
push esi
lea ecx, [esp + 0x188]
call fcn.00416150
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x184]
push eax
mov byte [esp + 0x264], 0x30
lea ecx, [ecx + 0x14]
call fcn.004974b0
mov byte [esp + 0x260], 0x2e
or ecx, 0xffffffff
mov edx, dword [esp + 0x184]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac449
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [esi - 0x10]
mov byte [esp + 0x260], 0xc
or esi, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac46d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x18], edx
mov eax, dword [ecx + 0x24]
sub eax, dword [ecx + 0x20]
sar eax, 2
cmp edx, eax
jb 0x4ac330
jmp 0x4ac4c6
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x180]
push eax
call fcn.0049baa0
mov byte [esp + 0x260], 0xc
mov ecx, esi
mov edx, dword [esp + 0x180]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac4c6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [esp + 0x188]
mov byte [esp + 0x260], 0xb
or ecx, 0xffffffff
mov edx, dword [esp + 0x1bc]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac4f6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x260], 0xa
or ecx, 0xffffffff
mov edx, dword [esp + 0x18c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac51f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [edi - 0x10]
mov byte [esp + 0x260], 9
or edi, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac543
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [esp + 0x260], 8
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac564
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x260], 7
mov ecx, edi
mov edx, dword [esp + 0x1b8]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac58c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x260], 6
mov ecx, edi
mov edx, dword [esp + 0x1b0]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac5b4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x194]
mov byte [esp + 0x260], 4
call fcn.0040ad50
lea ecx, [esp + 0x1dc]
call fcn.0040a760
mov byte [esp + 0x260], 1
mov ecx, edi
mov edx, dword [esp + 0x1b4]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac5fc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 0x4c]
mov ecx, edi
mov byte [esp + 0x260], 0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4ac61e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp + 0x260], 0xffffffff
mov edx, dword [esp + 0x1ac]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x4ac647
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x258]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x244]
xor ecx, esp
call fcn.004bd963
mov esp, ebp
pop ebp
ret
push 0x526c18
lea eax, [esp + 0x24]
mov dword [esp + 0x28], 3
push eax
mov dword [esp + 0x30], 8
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], 0x513484
call fcn.004c22fb
int3