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

Disassembly:
mov ecx, dword [ecx + 0x198]
jmp 0x524850
sub esp, 8
push ebx
push ebp
push esi
push edi
mov edi, ecx
xor ebp, ebp
mov eax, dword [edi + 8]
cmp dword [eax + 0xcc], ebp
jne 0x524b00
cmp dword [eax + 0xd0], ebp
jne 0x524b00
cmp dword [edi + 0xc], ebp
je 0x524b00
mov eax, dword [eax + 0xc8]
xor ecx, ecx
add eax, 0x2c
mov edx, dword [eax]
cmp dword [edx + 0x3c], ebp
jne 0x524b00
inc ecx
add eax, 4
cmp ecx, 8
jl 0x52488a
mov ebx, 0xa0
mov eax, dword [edi + 8]
mov esi, 0x2c
mov ecx, dword [ebx + eax]
mov dword [ecx + 0x84], ebp
mov eax, dword [edi + 8]
mov edx, dword [ebx + eax]
mov ecx, dword [esi + edx]
cmp dword [ecx + 0x3c], ebp
je 0x5248f4
mov edx, dword [ebx + eax]
mov eax, dword [ebx + eax - 4]
mov ecx, dword [esi + edx]
mov edx, dword [ecx + 0x3c]
mov ecx, dword [eax + esi]
push edx
call fcn.00523050
mov eax, dword [edi + 8]
mov ecx, dword [eax + 0x118]
dec ecx
mov dword [eax + 0x118], ecx
mov ecx, dword [edi + 8]
mov edx, dword [ebx + ecx]
mov eax, dword [edx + esi]
mov dword [eax + 0x3c], ebp
add esi, 4
cmp esi, 0x4c
jl 0x5248b4
add ebx, 4
cmp ebx, 0xc8
jl 0x5248a3
mov ebx, dword [edi + 8]
mov dword [esp + 0x10], 0xc
mov dword [esp + 0x14], ebx
add ebx, 0x9c
mov esi, dword [ebx]
mov ecx, 8
mov eax, dword [esi + 0x7c]
xor eax, 1
mov dword [esi + 0x7c], eax
lea eax, [esi + 0x2c]
mov edx, dword [eax]
mov ebp, dword [esi + 0x7c]
add eax, 4
dec ecx
mov dword [edx + 0x30], ebp
jne 0x52492f
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
push ecx
test eax, eax
mov eax, dword [esi]
jne 0x524952
sub edx, 0xf
jmp 0x524955
add edx, 0xf
push edx
mov ecx, esi
call dword [eax + 0x28]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov eax, dword [esp + 0x10]
add ebx, 4
dec eax
mov dword [esp + 0x10], eax
jne 0x52491c
mov ecx, dword [esp + 0x14]
call fcn.00520e70
mov ecx, dword [edi + 8]
call fcn.00521db0
push str.Pushing_ceiling_up_n
call fcn.004f07d0
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 0x14]
add esp, 4
dec edx
mov dword [edi + 0xc], edx
mov edx, dword [ecx]
call dword [edx + 0x38]
mov ecx, dword [edi + 8]
mov esi, eax
mov eax, dword [edi + 0x14]
sub esi, 0x1b
mov edx, dword [ecx]
push esi
mov ebx, dword [eax]
call dword [edx + 0x34]
mov ecx, dword [edi + 0x14]
push eax
call dword [ebx + 0x28]
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0x18]
push esi
mov edx, dword [ecx]
mov ebx, dword [eax]
call dword [edx + 0x34]
mov ecx, dword [edi + 0x18]
push eax
call dword [ebx + 0x28]
mov ecx, dword [edi + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x34]
mov ecx, dword [edi + 0x14]
mov ebx, eax
mov edx, dword [ecx]
call dword [edx + 0x38]
mov dword [esp + 0x14], eax
lea esi, [edi + 0x1c]
mov ebp, 5
mov ecx, dword [esi]
mov edx, dword [esp + 0x14]
push edx
push ebx
mov eax, dword [ecx]
call dword [eax + 0x28]
add esi, 4
add ebx, 0x3c
dec ebp
jne 0x5249ea
mov edx, dword [edi + 8]
xor esi, esi
mov eax, 0xa
mov dword [edx + 0x12c], esi
lea ecx, [edx + 0xc4]
mov ebx, dword [ecx]
cmp dword [ebx + 0x84], esi
jne 0x524a2a
dec eax
sub ecx, 4
cmp eax, esi
jge 0x524a16
jmp 0x524a30
mov dword [edx + 0x12c], eax
mov eax, dword [edi + 8]
mov ecx, dword [eax + 0x7c]
add ecx, 0xffffffe5
mov dword [eax + 0x7c], ecx
mov edi, dword [edi + 8]
cmp dword [edi + 0xcc], esi
jne 0x524b00
cmp dword [edi + 0x34c], esi
je 0x524b00
mov ecx, dword [edi + 0x98]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x98]
add eax, 0x16e
mov edx, dword [ecx]
push eax
mov eax, dword [edi + 0x10]
add eax, 0x81
push eax
call dword [edx + 0x28]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x10]
push ecx
mov ecx, dword [edi + 0x194]
push edx
call fcn.004f2700
mov eax, dword [edi + 0x98]
push 0x58
mov dword [eax + 0x98], esi
call fcn.004d8630
add esp, 4
cmp eax, esi
je 0x524af2
push esi
lea ecx, [edi + 0x78]
sub esp, 0x10
mov esi, dword [ecx]
mov edx, esp
mov dword [edx], esi
mov esi, dword [ecx + 4]
mov dword [edx + 4], esi
mov esi, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [edx + 8], esi
mov dword [edx + 0xc], ecx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push edx
push ecx
mov ecx, eax
call fcn.004db9a0
mov ecx, dword [edi + 0x98]
push eax
call fcn.00485230
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov ecx, dword [edi + 0x98]
xor eax, eax
push eax
call fcn.00485230
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret