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

Disassembly:
sub esp, 0x4c
push ebx
push ebp
mov ebp, dword [esp + 0x58]
push esi
mov esi, dword [esp + 0x60]
push edi
xor edi, edi
cmp dword [ebp + 0xc], edi
je 0x478cdf
lea eax, [esp + 0x30]
mov dword [esp + 0x34], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x6f524c], edi
mov dword [esp + 0x38], eax
je 0x478c70
mov ecx, dword [esp + 0x34]
push ecx
call fcn.0047cfb0
jmp 0x478c78
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
cmp esi, edi
mov dword [esp + 0x1c], edi
je 0x478cc1
mov eax, dword [esi]
cmp eax, edi
je 0x478c8b
mov edx, dword [ebp + 4]
mov dword [eax], edx
mov eax, dword [esi + 4]
cmp eax, edi
je 0x478c97
mov ecx, dword [ebp + 8]
mov dword [eax], ecx
mov eax, dword [esi + 8]
cmp eax, edi
je 0x478cc1
mov dword [eax], edi
mov eax, dword [ebp]
cmp dword [eax + 0x14], edi
je 0x478cb1
mov edx, dword [eax + 0x18]
mov dword [esp + 0x1c], edx
jmp 0x478cc1
mov eax, dword [eax + 4]
push eax
call fcn.00609413
add esp, 4
mov dword [esp + 0x1c], eax
cmp word [ebp + 0x10], 1
je 0x478cee
cmp dword [0x6f524c], edi
je 0x478cdf
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push ecx
push edx
call fcn.0047d2c0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 8
mov edx, dword [ebp + 0xc]
cmp word [edx + 0x40], 5
lea eax, [esp + 0x3c]
sete byte [esp + 0x60]
call fcn.004d4cd0
cmp byte [esp + 0x60], 0
mov ebx, dword [edx + 0x78]
je 0x478d17
cmp ebx, edi
jne 0x478d17
mov ebx, 1
lea ecx, [esp + 0x28]
call fcn.0043d080
xor edi, edi
cmp byte [esp + 0x60], 0
jne 0x478d36
test ebx, ebx
jne 0x478d36
test esi, esi
je 0x478d6c
cmp dword [esi + 0xc], edi
je 0x478d6c
lea edi, [esp + 0x28]
mov eax, edx
call fcn.004782e0
test eax, eax
je 0x478d67
cmp byte [esp + 0x60], 0
je 0x478d55
call fcn.00477570
test eax, eax
je 0x478d67
mov edi, 1
mov eax, edi
lea ecx, [esp + 0x28]
call fcn.004773e0
jmp 0x478d6c
mov edi, 0x40
cmp dword [esp + 0x2c], 0
je 0x478db7
test ebx, ebx
je 0x478db7
cmp ebx, edi
je 0x478db7
mov eax, ebx
lea esi, [esp + 0x20]
call fcn.004772c0
lea eax, [esp + 0x28]
lea edi, [esp + 0x3c]
call fcn.00477d50
mov eax, esi
call fcn.00477d50
mov eax, edi
call fcn.00477db0
lea eax, [esp + 0x28]
mov edi, ebx
call fcn.004772e0
mov ecx, esi
call fcn.00477330
mov esi, dword [esp + 0x64]
test esi, esi
je 0x478dde
mov edx, dword [esi + 0xc]
test edx, edx
je 0x478dde
lea eax, [esp + 0x28]
call fcn.00477380
test al, al
je 0x478dde
lea esi, [esp + 0x28]
mov eax, edx
call fcn.004772e0
mov esi, dword [esp + 0x64]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x478dec
mov word [eax + 0x16], di
lea ecx, [esp + 0x28]
call fcn.00477330
cmp byte [esp + 0x60], 0
je 0x478e0d
cmp dword [esp + 0x44], 0
je 0x478e0d
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0x54], 0x478aa0
mov edx, dword [ebp + 0xc]
xor edi, edi
cmp dword [edx + 8], edi
mov dword [esp + 0x28], edi
je 0x478e4c
cmp dword [esp + 0x44], edi
je 0x478e4c
lea eax, [edi + 8]
call fcn.00457920
test eax, eax
je 0x478e40
lea ecx, [esp + 0x3c]
mov dword [eax], vtable.ytTransformScanline.0
mov dword [eax + 4], ecx
mov edi, eax
mov dword [esp + 0x28], eax
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 8]
mov dword [eax + 0x94], edi
mov dword [esp + 0x14], 0xf4241
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x6c], ecx
mov edx, dword [ebp + 0xc]
mov dword [edx + 0x70], 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x1c]
add edx, ecx
cmp edx, dword [eax + 0x34]
jbe 0x478e83
mov edi, dword [eax + 0x34]
sub edi, dword [eax + 0x1c]
mov dword [esp + 0x20], edi
jmp 0x478e89
mov edi, ecx
mov dword [esp + 0x20], ecx
test edi, edi
je 0x478fae
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x30]
mov esi, dword [eax + 0x18]
push edi
push ecx
push esi
add eax, 0x20
call fcn.005d29d0
add esp, 0xc
test eax, eax
je 0x478fbb
xor ebx, ebx
test edi, edi
jbe 0x478f92
add edi, 0xffffffff
mov dword [esp + 0x18], edi
cmp dword [esp + 0x14], 0xf4241
jne 0x479074
mov edx, dword [ebp + 4]
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x18]
mov eax, edx
imul eax, dword [esp + 0x18]
cmp byte [esp + 0x60], 0
lea edi, [ecx + eax*4]
je 0x478ef0
cmp dword [esp + 0x44], 0
jne 0x478ef7
mov ecx, edi
call fcn.004c0060
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 8]
test eax, eax
je 0x478f0f
lea ecx, [esp + 0x48]
push ecx
push edi
push eax
call fcn.0047fea0
jmp 0x478f5d
mov eax, dword [edx + 0x1c]
mov ecx, dword [edx + 0xc]
add eax, ebx
test ecx, ecx
je 0x478f27
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x14]
call eax
mov esi, eax
jmp 0x478f3e
mov edx, dword [edx + 0x10]
test edx, edx
je 0x478f3c
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0x10]
imul ecx, eax
lea esi, [edx + ecx*4]
jmp 0x478f3e
xor esi, esi
mov eax, dword [ebp + 4]
add eax, eax
add eax, eax
push eax
push edi
push esi
call fcn.0060d1b0
mov ecx, dword [ebp + 4]
add esp, 0xc
push ecx
lea edi, [esp + 0x40]
call fcn.00477ef0
lea eax, [esp + 0x30]
call fcn.0041d580
test eax, eax
je 0x478f72
mov dword [esp + 0x14], 0xf4242
sub dword [esp + 0x18], 1
add ebx, 1
cmp ebx, dword [esp + 0x20]
jb 0x478ec1
cmp dword [esp + 0x14], 0xf4241
jne 0x479074
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x18]
add dword [eax + 0x1c], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x1c]
cmp ecx, dword [ebp + 8]
mov esi, dword [esp + 0x64]
jl 0x478e54
mov dword [esp + 0x14], 0xf4240
jmp 0x479082
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x1c], 0
jne 0x478fd1
mov dword [esp + 0x14], 0xffffffff
jmp 0x4790af
mov eax, edx
mov edi, dword [eax + 0x34]
sub edi, dword [eax + 0x1c]
cmp dword [eax + 8], 0
je 0x479017
mov eax, dword [ebp + 4]
add eax, eax
add eax, eax
push eax
push 0
push esi
call fcn.0060c930
add esp, 0xc
test edi, edi
jbe 0x47906a
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 8]
lea ecx, [esp + 0x48]
push ecx
push esi
push eax
call fcn.0047fea0
sub edi, 1
jne 0x478ff6
mov dword [esp + 0x14], 0xf4240
jmp 0x47907e
xor esi, esi
test edi, edi
jbe 0x47906a
lea ecx, [ecx]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x1c]
mov ecx, dword [edx + 0xc]
add eax, esi
test ecx, ecx
je 0x479039
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x14]
call eax
jmp 0x479050
mov edx, dword [edx + 0x10]
test edx, edx
je 0x47904e
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0x10]
imul ecx, eax
lea eax, [edx + ecx*4]
jmp 0x479050
xor eax, eax
mov ecx, dword [ebp + 4]
add ecx, ecx
add ecx, ecx
push ecx
push 0
push eax
call fcn.0060c930
add esi, 1
add esp, 0xc
cmp esi, edi
jb 0x479020
mov dword [esp + 0x14], 0xf4240
jmp 0x47907e
cmp dword [esp + 0x14], 0xf4240
jne 0x4790af
mov esi, dword [esp + 0x64]
test esi, esi
je 0x4790af
cmp dword [esi + 8], 0
je 0x4790af
mov ebp, dword [ebp]
cmp dword [ebp + 0x14], 0
je 0x47909a
mov eax, dword [ebp + 0x18]
jmp 0x4790a6
mov edx, dword [ebp + 4]
push edx
call fcn.00609413
add esp, 4
sub eax, dword [esp + 0x1c]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4790bf
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
lea eax, [esp + 0x3c]
call fcn.00477cf0
cmp dword [0x6f524c], 0
je 0x4790e0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push ecx
push edx
call fcn.0047d2c0
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 8