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

Disassembly:
mov eax, 0x100cbfcb
call fcn.100bd27c
sub esp, 0x40
push ebx
push ebp
push esi
mov ebx, ecx
xor eax, eax
push edi
mov edi, dword [esp + 0x64]
inc eax
xorps xmm0, xmm0
mov dword [esp + 0x1c], ebx
movlpd qword [esp + 0x14], xmm0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov byte [ebx + 0x4c], al
cmp dword [edi + 0x34], 0
jbe 0x1004f508
mov eax, dword [edi + 0x30]
mov esi, dword [edi + 0x34]
add edx, dword [eax]
adc ecx, dword [eax + 4]
lea eax, [eax + 8]
dec esi
jne 0x1004f4fd
mov eax, dword [esp + 0x68]
push 1
mov dword [eax + 4], ecx
mov ecx, ebx
mov dword [eax], edx
call fcn.1004edda
cmp dword [edi + 0x58], 0
jbe 0x1004f612
push 4
mov ecx, ebx
call fcn.1004edda
lea eax, [edi + 0x3c]
mov ecx, ebx
push eax
lea eax, [edi + 0x30]
push eax
push 0
push 0
call fcn.1004f9f2
lea eax, [edi + 0x54]
mov ecx, ebx
push edi
push eax
call fcn.1004fda3
xor ecx, ecx
mov esi, ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x4c], ecx
mov ebp, ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
mov eax, ecx
mov byte [esp + 0x58], 1
mov dword [esp + 0x68], eax
cmp dword [edi + 0x64], eax
jbe 0x1004f5d6
mov esi, dword [edi + 0x60]
add esi, ebp
cmp byte [esi + 0x10], 0
je 0x1004f5c1
push dword [esi + 4]
lea ecx, [esp + 0x48]
push dword [esi]
call fcn.1000eb6f
movzx eax, byte [esi + 0x12]
lea ecx, [esp + 0x2c]
push eax
call fcn.1007e49f
push dword [esi + 0xc]
lea ecx, [esp + 0x3c]
call fcn.10003027
mov eax, dword [esp + 0x68]
inc eax
add ebp, 0x18
mov dword [esp + 0x68], eax
cmp eax, dword [edi + 0x64]
jb 0x1004f58a
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x2c]
lea eax, [esp + 0x2c]
mov ecx, ebx
push eax
lea eax, [esp + 0x48]
push eax
push edi
lea eax, [edi + 0x54]
push eax
call fcn.1004fb49
push 0
mov ecx, ebx
call fcn.1004edda
push dword [esp + 0x38]
call fcn.1000366d
push ebp
call fcn.1000366d
or dword [esp + 0x60], 0xffffffff
push esi
call fcn.1000366d
add esp, 0xc
cmp dword [edi + 0x64], 0
mov ecx, ebx
je 0x1004f933
push 5
call fcn.1004edda
push 0
push dword [edi + 0x64]
mov ecx, ebx
call fcn.1004f94d
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov esi, dword [edi + 0x64]
lea ecx, [esp + 0x44]
push esi
mov dword [esp + 0x5c], 2
call fcn.100437bf
mov dword [esp + 0x48], esi
xor ecx, ecx
xor esi, esi
cmp dword [edi + 0x64], ecx
jbe 0x1004f79e
mov ebp, dword [esp + 0x44]
xor edx, edx
mov eax, dword [edi + 0x60]
cmp byte [eax + edx + 0x10], 0
je 0x1004f67b
mov byte [ecx + ebp], 0
jmp 0x1004f680
mov byte [ecx + ebp], 1
inc esi
inc ecx
add edx, 0x18
cmp ecx, dword [edi + 0x64]
jb 0x1004f66b
test esi, esi
je 0x1004f79e
lea eax, [esp + 0x44]
mov ecx, ebx
push eax
push 0xe
call fcn.1004fa64
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
push esi
lea ecx, [esp + 0x30]
mov byte [esp + 0x5c], 4
call fcn.100437bf
push esi
lea ecx, [esp + 0x24]
mov dword [esp + 0x34], esi
call fcn.100437bf
mov dword [esp + 0x24], esi
xor al, al
xor esi, esi
mov dword [esp + 0x10], eax
xor dl, dl
cmp dword [edi + 0x64], esi
jbe 0x1004f78a
mov eax, dword [esp + 0x20]
xor ebp, ebp
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x68], eax
sub ebx, eax
mov ecx, dword [edi + 0x60]
cmp byte [ecx + ebp + 0x10], 0
jne 0x1004f755
cmp byte [ecx + ebp + 0x11], 0
mov edi, dword [esp + 0x68]
sete al
movzx edx, dl
push 1
mov byte [ebx + edi], al
cmp byte [ecx + ebp + 0x11], 0
mov edi, dword [esp + 0x68]
mov ecx, edi
pop eax
cmove edx, eax
push esi
mov dword [esp + 0x18], edx
call fcn.1004eb44
mov ecx, dword [esp + 0x68]
test al, al
mov edx, dword [esp + 0x14]
push 1
mov byte [ecx], al
mov ecx, dword [esp + 0x14]
movzx ecx, cl
pop eax
cmovne ecx, eax
inc dword [esp + 0x68]
mov dword [esp + 0x10], ecx
inc esi
add ebp, 0x18
cmp esi, dword [edi + 0x64]
jb 0x1004f6fd
mov ebx, dword [esp + 0x1c]
test dl, dl
je 0x1004f774
lea eax, [esp + 0x2c]
mov ecx, ebx
push eax
push 0xf
call fcn.1004fa64
mov eax, dword [esp + 0x10]
test al, al
je 0x1004f78a
lea eax, [esp + 0x20]
mov ecx, ebx
push eax
push 0x10
call fcn.1004fa64
push dword [esp + 0x20]
call fcn.1000366d
push dword [esp + 0x30]
call fcn.1000366d
pop ecx
pop ecx
push dword [esp + 0x44]
or dword [esp + 0x5c], 0xffffffff
call fcn.1000366d
pop ecx
xor ecx, ecx
xor esi, esi
cmp dword [edi + 0x64], ecx
jbe 0x1004f852
mov edx, dword [edi + 0x6c]
mov ebp, dword [edi + 0x64]
mov eax, dword [edx]
mov eax, dword [eax + 4]
test eax, eax
je 0x1004f7ca
inc ecx
lea esi, [esi + eax*2]
add edx, 4
add esi, 2
dec ebp
jne 0x1004f7c0
test ecx, ecx
je 0x1004f852
push 0x10
push ebp
inc esi
push esi
call fcn.1004ead0
add eax, 2
mov ecx, ebx
push eax
call fcn.1004ec6a
push 0x11
mov ecx, ebx
call fcn.1004edda
push ebp
push esi
mov ecx, ebx
call fcn.1004f94d
push ebp
mov ecx, ebx
call fcn.1004edda
mov dword [esp + 0x68], ebp
cmp dword [edi + 0x64], ebp
jbe 0x1004f852
mov eax, dword [edi + 0x6c]
xor edi, edi
mov eax, dword [eax + ebp*4]
mov ebp, eax
mov dword [esp + 0x1c], eax
mov eax, dword [ebp]
mov ecx, ebx
movzx esi, word [eax + edi*2]
push esi
call fcn.1004edda
shr esi, 8
mov ecx, ebx
push esi
call fcn.1004edda
inc edi
cmp edi, dword [ebp + 4]
jbe 0x1004f820
mov ebp, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
inc ebp
mov dword [esp + 0x68], ebp
cmp ebp, dword [edi + 0x64]
jb 0x1004f812
push 0x12
lea eax, [edi + 0x78]
mov ecx, ebx
push eax
call fcn.1004fd43
push 0x13
lea eax, [edi + 0x90]
mov ecx, ebx
push eax
call fcn.1004fd43
push 0x14
lea eax, [edi + 0xa8]
mov ecx, ebx
push eax
call fcn.1004fd43
push 0x18
lea eax, [edi + 0xc0]
mov ecx, ebx
push eax
call fcn.1004fd43
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov esi, dword [edi + 0x64]
lea ecx, [esp + 0x44]
push esi
mov dword [esp + 0x5c], 5
call fcn.100437bf
xor ecx, ecx
mov dword [esp + 0x48], esi
xor edx, edx
cmp dword [edi + 0x64], ecx
jbe 0x1004f919
mov ebp, dword [esp + 0x44]
xor esi, esi
mov eax, dword [edi + 0x60]
mov al, byte [eax + esi + 0x13]
mov byte [edx + ebp], al
test al, al
je 0x1004f8d4
inc ecx
inc edx
add esi, 0x18
cmp edx, dword [edi + 0x64]
jb 0x1004f8c5
test ecx, ecx
je 0x1004f919
push 4
push 0x15
push ecx
lea eax, [esp + 0x50]
mov ecx, ebx
push eax
call fcn.1004ece7
xor ebp, ebp
cmp dword [edi + 0x64], ebp
jbe 0x1004f919
xor esi, esi
mov eax, dword [edi + 0x60]
cmp byte [eax + esi + 0x13], 0
je 0x1004f910
push dword [eax + esi + 8]
mov ecx, ebx
call fcn.1004fcf9
inc ebp
add esi, 0x18
cmp ebp, dword [edi + 0x64]
jb 0x1004f8fb
push dword [esp + 0x44]
or dword [esp + 0x5c], 0xffffffff
call fcn.1000366d
pop ecx
push 0
mov ecx, ebx
call fcn.1004edda
mov ecx, ebx
push 0
call fcn.1004edda
mov ecx, dword [esp + 0x50]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
leave
ret 8