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

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x24]
xor ebx, ebx
cmp eax, ebx
mov dword [esi], vtable.hkWorld.0
jle 0x53a9a9
call fcn.00539690
cmp dword [esi + 0x124], ebx
mov byte [esi + 0x12c], bl
jle 0x53a9cf
mov eax, dword [esi + 0x120]
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.00538510
cmp dword [esi + 0x124], ebx
jg 0x53a9b7
cmp dword [esi + 0xc], ebx
jle 0x53a9f0
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov ecx, dword [eax + 0x3c]
mov edx, dword [ecx]
push edx
lea eax, [esp + 0xf]
push eax
mov ecx, esi
call fcn.005397d0
cmp dword [esi + 0xc], ebx
jg 0x53a9d4
cmp dword [esi + 0x18], ebx
jle 0x53aa11
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x3c]
mov ecx, dword [eax]
push ecx
lea edx, [esp + 0xf]
push edx
mov ecx, esi
call fcn.005397d0
cmp dword [esi + 0x18], ebx
jg 0x53a9f5
mov eax, dword [esi + 0xf4]
cmp eax, ebx
push edi
je 0x53aa4c
xor edi, edi
cmp eax, ebx
jle 0x53aa46
mov eax, dword [esi + 0xf0]
mov ecx, dword [eax + edi*4]
dec word [ecx + 6]
cmp word [ecx + 6], bx
jne 0x53aa3b
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [esi + 0xf4]
inc edi
cmp edi, eax
jl 0x53aa22
mov dword [esi + 0xf4], ebx
mov eax, dword [esi + 0x38]
push eax
lea ecx, [esp + 0x13]
push ecx
mov ecx, esi
call fcn.005397d0
mov ecx, dword [esi + 0x38]
dec word [ecx + 6]
cmp word [ecx + 6], bx
jne 0x53aa6f
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x38], ebx
cmp dword [eax + 0x40], ebx
jle 0x53aa9d
lea ebx, [ebx]
mov ecx, dword [esi + 0x2c]
mov edx, dword [ecx + 0x3c]
mov eax, dword [edx]
push eax
lea ecx, [esp + 0x13]
push ecx
mov ecx, esi
call fcn.005397d0
mov edx, dword [esi + 0x2c]
cmp dword [edx + 0x40], ebx
jg 0x53aa80
mov ecx, dword [esi + 0x2c]
cmp ecx, ebx
je 0x53aaaa
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esi + 0x118]
xor edi, edi
cmp eax, ebx
mov dword [esi + 0x2c], ebx
jle 0x53aaf2
lea esp, [esp]
mov ecx, dword [esi + 0x114]
mov ecx, dword [ecx + edi*4]
call fcn.00537670
mov edx, dword [esi + 0x114]
mov ecx, dword [edx + edi*4]
dec word [ecx + 6]
cmp word [ecx + 6], bx
jne 0x53aae7
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esi + 0x118]
inc edi
cmp edi, eax
jl 0x53aac0
push esi
mov dword [esi + 0x118], ebx
call fcn.00540de0
mov ecx, dword [esi + 0xc4]
add esp, 4
dec word [ecx + 6]
cmp word [ecx + 6], bx
jne 0x53ab17
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esi + 0xc8]
mov dword [esi + 0xc4], ebx
dec word [ecx + 6]
cmp word [ecx + 6], bx
jne 0x53ab33
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esi + 0x250]
mov dword [esi + 0xc8], ebx
dec word [ecx + 6]
cmp word [ecx + 6], bx
jne 0x53ab4f
mov edx, dword [ecx]
push 1
call dword [edx]
mov edi, dword [esi + 0x138]
cmp edi, ebx
je 0x53ab73
mov ecx, edi
call fcn.005f7680
mov ecx, dword [0x9617f0]
mov eax, dword [ecx]
push 0x22
push 0x104
push edi
call dword [eax + 0x14]
mov ecx, dword [esi + 0x13c]
cmp ecx, ebx
pop edi
je 0x53ab84
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esi + 0xd0]
dec word [ecx + 6]
cmp word [ecx + 6], bx
jne 0x53ab9a
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esi + 0xcc]
mov ecx, dword [0x9617f0]
mov eax, dword [eax + 0xc]
mov edx, dword [ecx]
push 0x1a
push 0x20
push eax
call dword [edx + 0x14]
mov ecx, dword [0x9617f0]
mov eax, dword [esi + 0xcc]
mov edx, dword [ecx]
push 0x1a
push 0x10
push eax
call dword [edx + 0x14]
mov ecx, dword [esi + 0x254]
cmp ecx, ebx
je 0x53abd9
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [esi + 0x128]
test eax, eax
js 0x53ac00
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0x120]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x11c]
test eax, eax
js 0x53ac27
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0x114]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x110]
test eax, eax
js 0x53ac4e
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0x108]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x104]
test eax, eax
js 0x53ac75
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0xfc]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0xf8]
test eax, eax
js 0x53ac9c
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0xf0]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0xbc]
test eax, eax
js 0x53acc3
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0xb4]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0xb0]
test eax, eax
js 0x53acea
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0xa8]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0xa4]
test eax, eax
js 0x53ad11
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0x9c]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x98]
test eax, eax
js 0x53ad38
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0x90]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x8c]
test eax, eax
js 0x53ad5f
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0x84]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x80]
test eax, eax
js 0x53ad83
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0x78]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x74]
test eax, eax
js 0x53ada4
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0x6c]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x68]
test eax, eax
js 0x53adc5
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0x60]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x5c]
test eax, eax
js 0x53ade6
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0x54]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x50]
test eax, eax
js 0x53ae07
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0x48]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x44]
test eax, eax
js 0x53ae28
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0x3c]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x28]
test eax, eax
js 0x53ae49
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 3
push eax
mov eax, dword [esi + 0x20]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x1c]
test eax, eax
js 0x53ae6a
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 0x14]
push eax
call dword [edx + 0x14]
mov eax, dword [esi + 0x10]
test eax, eax
js 0x53ae8b
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esi + 8]
push eax
call dword [edx + 0x14]
xor eax, eax
mov ax, word [esi + 4]
test ah, ah
mov dword [esi], vtable.hkSerializable.0
jns 0x53aeac
and eax, 0x7fff
push ebx
mov ecx, esi
mov word [esi + 4], ax
call fcn.0054d460
mov dword [esi], vtable.hkBaseObject.0
pop esi
pop ebx
pop ecx
ret