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

Disassembly:
sub esp, 0x170
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x180]
push ebp
push esi
mov esi, dword [esp + 0x180]
mov eax, dword [ecx + 0x510]
mov ebp, dword [ecx + 0x504]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x40]
push edi
xor edi, edi
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x34], eax
mov eax, dword [eax + 0xb20]
mov dword [esp + 0x30], eax
test edx, edx
je 0x4bc860
push ebx
mov ebx, edi
test ebp, ebp
jle 0x4bc415
mov edi, dword [esp + 0x10]
mov esi, dword [edx + ebx*4]
mov eax, esi
mov ecx, dword [edi + 0x340]
and eax, 0x7fff
dec ecx
je 0x4bc3f9
dec ecx
je 0x4bc3f4
dec ecx
je 0x4bc3e5
dec ecx
jne 0x4bc3fc
sar eax, 4
jmp 0x4bc3fc
push 0xc
cdq
pop ecx
idiv ecx
mov edx, dword [esp + 0x190]
jmp 0x4bc3fc
sar eax, 3
jmp 0x4bc3fc
sar eax, 2
and esi, 0x8000
or esi, eax
mov dword [edx + ebx*4], esi
inc ebx
cmp ebx, ebp
jl 0x4bc3c4
mov ecx, dword [esp + 0x18c]
xor edi, edi
mov esi, dword [edx]
mov ebx, dword [edx + 4]
push 2
pop eax
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], ebx
mov dword [esp + 0x2c], eax
cmp ebp, eax
jle 0x4bc541
mov eax, dword [esp + 0x10]
lea esi, [edx + 8]
mov ebx, dword [esp + 0x18c]
add eax, 0x34c
mov dword [esp + 0x14], eax
add ecx, 0x30c
lea eax, [esp + 0x7c]
mov dword [esp + 0x24], ecx
sub eax, edx
mov dword [esp + 0x1c], eax
lea eax, [ebp - 2]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov ebp, dword [ecx + 0xfc]
mov ecx, dword [ecx]
push dword [eax]
mov eax, ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], ecx
push dword [edx + ecx*4]
push dword [edx + eax*4]
mov edx, dword [esp + 0x1c]
push dword [edx + ecx*4 + 0x344]
push dword [edx + eax*4 + 0x344]
call fcn.004bd1d9
mov ecx, dword [esi]
mov edx, 0x8000
mov ebp, dword [esp + 0x30]
add esp, 0x14
test edx, ecx
jne 0x4bc505
cmp eax, ecx
je 0x4bc505
mov edx, dword [ebx + 0x50c]
sub edx, eax
cmp edx, eax
jl 0x4bc4bf
mov edx, eax
sub ecx, eax
jns 0x4bc4dc
mov eax, edx
neg eax
cmp ecx, eax
jge 0x4bc4d2
sub edx, ecx
lea ecx, [edx - 1]
jmp 0x4bc4e6
lea eax, [ecx + ecx]
or ecx, 0xffffffff
sub ecx, eax
jmp 0x4bc4e6
cmp ecx, edx
jl 0x4bc4e4
add ecx, edx
jmp 0x4bc4e6
add ecx, ecx
mov edx, dword [esp + 0x190]
mov eax, dword [esp + 0x20]
mov dword [esi + ebp], ecx
mov ecx, 0x7fff
and dword [edx + eax*4], ecx
mov eax, dword [esp + 0x28]
and dword [edx + eax*4], ecx
jmp 0x4bc513
or eax, edx
mov dword [esi + ebp], edi
mov edx, dword [esp + 0x190]
mov dword [esi], eax
mov ecx, dword [esp + 0x24]
add esi, 4
mov eax, dword [esp + 0x14]
add ecx, 4
add eax, 4
mov dword [esp + 0x24], ecx
dec dword [esp + 0x18]
mov dword [esp + 0x14], eax
jne 0x4bc46a
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x7c]
push 1
push 1
push dword [esp + 0x18c]
call fcn.004c0cc0
mov ebp, dword [esp + 0x198]
mov eax, dword [ebp + 0x50c]
inc dword [ebp + 0x51c]
dec eax
push eax
call fcn.004b2d3f
add eax, eax
add dword [ebp + 0x518], eax
mov eax, dword [ebp + 0x50c]
dec eax
push eax
call fcn.004b2d3f
push eax
push esi
push dword [esp + 0x1a0]
call fcn.004c0cc0
mov eax, dword [ebp + 0x50c]
dec eax
push eax
call fcn.004b2d3f
push eax
push ebx
push dword [esp + 0x1b0]
call fcn.004c0cc0
mov edx, dword [esp + 0x40]
add esp, 0x30
mov dword [esp + 0x28], edi
cmp dword [edx], edi
jle 0x4bc797
lea eax, [edx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
xor esi, esi
inc esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov ecx, dword [edx + eax*4 + 0xc0]
mov ebx, dword [edx + eax*4 + 0x80]
shl esi, cl
mov dword [esp + 0x14], ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
test ecx, ecx
je 0x4bc70f
mov dword [esp + 0x3c], edi
mov edx, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
test esi, esi
jle 0x4bc675
mov ebp, dword [esp + 0x38]
lea ecx, [eax + 0xa]
shl ecx, 5
add ecx, dword [esp + 0x10]
mov eax, dword [ecx]
test eax, eax
jns 0x4bc658
mov dword [esp + edx*4 + 0x3c], 1
jmp 0x4bc666
mov eax, dword [ebp + eax*4 + 0x720]
mov eax, dword [eax + 4]
mov dword [esp + edx*4 + 0x3c], eax
inc edx
add ecx, 4
cmp edx, esi
jl 0x4bc648
mov ebp, dword [esp + 0x18c]
mov edx, edi
test ebx, ebx
jle 0x4bc6d8
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x7c]
mov ebp, dword [esp + 0x14]
lea ebx, [ebx + eax*4]
mov eax, edi
test esi, esi
jle 0x4bc6a3
mov ecx, dword [ebx]
cmp ecx, dword [esp + eax*4 + 0x3c]
jl 0x4bc69f
inc eax
cmp eax, esi
jl 0x4bc692
jmp 0x4bc6a3
mov dword [esp + edx*4 + 0x5c], eax
mov eax, dword [esp + edx*4 + 0x5c]
add ebx, 4
mov ecx, dword [esp + 0x24]
shl eax, cl
mov ecx, dword [esp + 0x20]
or ecx, eax
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x30]
inc edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
cmp edx, ebp
jl 0x4bc68a
mov ebp, dword [esp + 0x18c]
mov ebx, dword [esp + 0x14]
jmp 0x4bc6dc
mov ecx, dword [esp + 0x20]
push dword [esp + 0x184]
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x20]
imul eax, dword [eax + ecx*4 + 0x100], 0x38
add eax, dword [esp + 0x3c]
push eax
call fcn.004bab19
mov edx, dword [esp + 0x1c]
add esp, 0xc
add dword [ebp + 0x514], eax
mov eax, dword [esp + 0x18]
mov esi, edi
test ebx, ebx
jle 0x4bc777
mov edi, dword [esp + 0x14]
lea ecx, [eax*8 + 0x50]
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x7c]
mov dword [esp + 0x18], ecx
lea ebx, [ebx + eax*4]
mov eax, dword [esp + esi*4 + 0x5c]
add eax, ecx
mov eax, dword [edx + eax*4]
test eax, eax
js 0x4bc769
mov ecx, dword [ebx]
imul eax, eax, 0x38
add eax, dword [esp + 0x34]
cmp ecx, dword [eax + 4]
jge 0x4bc765
push dword [esp + 0x184]
push ecx
push eax
call fcn.004bab19
mov edx, dword [esp + 0x1c]
add esp, 0xc
add dword [ebp + 0x518], eax
mov ecx, dword [esp + 0x18]
inc esi
add ebx, 4
cmp esi, edi
jl 0x4bc72f
mov ebx, dword [esp + 0x14]
xor edi, edi
mov ecx, dword [esp + 0x28]
add dword [esp + 0x2c], ebx
inc ecx
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
cmp ecx, dword [edx]
jl 0x4bc5c3
mov ebx, dword [esp + 0x188]
xor ebp, ebp
mov ecx, dword [edx + 0x340]
inc ebp
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x190]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x1c], edi
imul ecx, dword [esi]
mov eax, dword [edx + eax*4]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18c]
cmp dword [eax + 0x504], ebp
jle 0x4bc84e
lea ebx, [eax + 0x108]
mov edx, dword [ebx]
mov eax, dword [esi + edx*4]
and eax, 0x7fff
cmp eax, dword [esi + edx*4]
jne 0x4bc827
mov edi, dword [esp + 0x10]
push dword [esp + 0x194]
mov esi, dword [edi + 0x340]
mov edi, dword [edi + edx*4 + 0x344]
imul esi, eax
push esi
push ecx
push edi
push dword [esp + 0x2c]
push dword [esp + 0x44]
call fcn.004bd156
mov ecx, esi
mov dword [esp + 0x34], edi
mov esi, dword [esp + 0x1a8]
add esp, 0x18
mov eax, dword [esp + 0x18c]
inc ebp
add ebx, 4
cmp ebp, dword [eax + 0x504]
jl 0x4bc7dd
mov ebx, dword [esp + 0x188]
jmp 0x4bc84e
mov eax, dword [esp + 0x194]
mov dword [eax + edi*4], ecx
inc edi
mov eax, dword [ebx + 0x24]
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
jl 0x4bc843
xor eax, eax
inc eax
pop ebx
jmp 0x4bc88d
push 1
push edi
push dword [esp + 0x188]
call fcn.004c0cc0
mov eax, dword [esi + 0x24]
cdq
sub eax, edx
sar eax, 1
shl eax, 2
push eax
push edi
push dword [esp + 0x1a4]
call sub.MSVCRT.dll_memset
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebp
add esp, 0x170
ret