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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
mov eax, dword [0x57a040]
xor eax, esp
mov dword [esp + 0x40], eax
mov ecx, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x18], ecx
mov ebx, dword [edi*4 + 0x20a514c]
test edi, edi
js 0x47667e
cmp edi, 0x1194
jge 0x47667e
cmp dword [ebx + 4], 3
jne 0x47667e
movzx eax, word [ebx + 0x78]
cmp eax, 1
je 0x4763e8
cmp eax, 6
jne 0x47667e
cmp byte [ebx + 0xa], 0
jg 0x47667e
cmp byte [ebx + 0x9c0], 0
jne 0x47667e
mov eax, dword [0xa0cdb0]
test eax, eax
je 0x47667e
cmp dword [eax + 4], 0
je 0x47667e
cmp word [eax + 0x9e], 0xfffd
jne 0x47667e
mov eax, dword [ebx + 0x384]
test al, 3
je 0x47667e
and eax, 0xffc0
cmp eax, 0x300
jne 0x47667e
mov al, byte [ecx + 4]
cmp al, 4
jae 0x47667e
movzx ecx, al
mov eax, ecx
shl eax, 4
add eax, ecx
cmp dword [eax*4 + 0x645fd0], 1
lea esi, [eax*4 + 0x645fcc]
mov dword [esp + 0x14], esi
jne 0x47667e
push esi
call fcn.00474bd0
cmp eax, 0xa
jge 0x47667e
xor ecx, ecx
add esi, 0x1c
mov eax, esi
cmp dword [eax], edi
je 0x476495
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x476486
jmp 0x47649d
test eax, eax
jne 0x47667e
xor eax, eax
mov ecx, esi
mov edx, dword [ecx]
test edx, edx
js 0x4764cc
cmp edx, 0x1194
jge 0x4764cc
inc eax
add ecx, 4
cmp eax, 0xa
jl 0x4764a1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [esp + 0x14]
mov dword [ecx + eax*4 + 0x1c], edi
mov eax, dword [ebx + 0x2a8]
test eax, eax
js 0x476509
cmp eax, 0x1194
jge 0x476509
mov ecx, edi
call fcn.004bd570
push 5
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0x20f305c1
mov ecx, edi
mov byte [esp + 0x14], 0
call fcn.00526480
add esp, 4
and dword [ebx + 0x384], 0xffff0000
push 0
push 0
push 0
push 0
push 0
push 0x12
push 0
push ebx
call fcn.00477200
push 0
push 0
push 0
push 0
push 0
push 0x62
push 0
push ebx
call fcn.00477200
mov eax, dword [esp + 0x18]
mov ecx, edi
movzx edx, byte [eax + 4]
add edx, 0x12f
call fcn.00522900
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x1c], 0x7aa1ec1
mov byte [esp + 0x20], 0
mov al, byte [ebx]
mov edx, dword [ebx + 0x14]
mov byte [esp + 0x21], al
test edx, edx
js 0x476593
cmp edx, 0x1194
jge 0x476593
mov eax, dword [edx*4 + 0x20a514c]
movq xmm0, qword [eax + 0x86]
mov ax, word [eax + 0x8e]
mov word [esp + 0x2a], ax
jmp 0x47659d
xorps xmm0, xmm0
mov word [esp + 0x2a], 0
mov ecx, dword [ebx + 0x18]
movq qword [esp + 0x22], xmm0
test ecx, ecx
js 0x4765cf
cmp ecx, 0x1194
jge 0x4765cf
mov eax, dword [ecx*4 + 0x20a514c]
movq xmm0, qword [eax + 0x86]
mov ax, word [eax + 0x8e]
mov word [esp + 0x34], ax
jmp 0x4765d9
xorps xmm0, xmm0
mov word [esp + 0x34], 0
mov eax, edx
movq qword [esp + 0x2c], xmm0
shr eax, 8
mov byte [esp + 0x36], al
mov eax, ecx
shr eax, 8
mov byte [esp + 0x38], al
movzx eax, byte [esp + 0x1d]
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x3b], dl
push eax
push edi
mov byte [esp + 0x45], cl
call fcn.005192f0
push ebx
push edi
call fcn.004769b0
mov eax, dword [edi*4 + 0x20a514c]
mov dl, 0xe
mov dword [esp + 0x3c], 0x8aa0ec1
mov ebx, 0xa
movq xmm0, qword [eax + 0x86]
mov ax, word [eax + 0x8e]
movq qword [esp + 0x40], xmm0
mov word [esp + 0x48], ax
mov ecx, dword [esi]
test ecx, ecx
js 0x476666
cmp ecx, 0x1194
jge 0x476666
cmp ecx, edi
je 0x476666
movzx eax, dl
push eax
lea eax, [esp + 0x40]
push eax
push ecx
call fcn.005192f0
mov dl, byte [esp + 0x3d]
add esi, 4
sub ebx, 1
jne 0x476641
mov ebx, dword [esp + 0x14]
push ebx
call fcn.004767f0
push ebx
call fcn.00476740
mov ecx, dword [esp + 0x4c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 8