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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
mov eax, dword [0x103ef7a4]
xor eax, esp
mov dword [esp + 0x70], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [edx + 0x68]
mov dword [esp + 0x50], eax
mov eax, dword [edx + 0x64]
push edi
xor edi, edi
mov dword [esp + 0x40], eax
mov eax, dword [edx + 0x2e0]
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], edi
mov byte [esp + 0x13], 0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1004bd21
lea eax, [esp + 0x50]
push eax
mov eax, dword [edx + 0x204]
push esi
push 0x67766172
push edx
call eax
mov ebx, dword [esp + 0x24]
add esp, 0x10
test eax, eax
je 0x1004bc74
lea eax, [esp + 0x50]
push eax
mov eax, dword [ebx + 0x204]
push esi
push 0x43464632
push ebx
call eax
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x1004c3c4
lea eax, [esp + 0x50]
push eax
mov eax, dword [ebx + 0x204]
push esi
push 0x66766172
push ebx
call eax
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x1004c3c4
mov eax, dword [esi + 8]
mov edx, 0x10240374
mov dword [esp + 0x28], eax
mov ecx, esi
lea eax, [esp + 0x58]
push eax
call fcn.1000e360
mov edi, eax
add esp, 4
test edi, edi
jne 0x1004c3c4
movzx ebx, word [esp + 0x5e]
movzx eax, word [esp + 0x64]
push 0x50
mov dword [esp + 0x28], ebx
lea ecx, [ebx*4 + 6]
cmp eax, ecx
mov eax, dword [esp + 0x44]
push eax
sete byte [esp + 0x1b]
mov eax, dword [eax + 4]
call eax
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
jne 0x1004bcf2
lea edi, [eax + 0x40]
jmp 0x1004bd03
push 0x50
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esp + 0x50]
add esp, 0xc
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
mov dword [edx + 0x2e0], eax
test edi, edi
jne 0x1004c3c4
mov dword [eax], ebx
mov eax, dword [esp + 0x20]
jmp 0x1004bd27
mov ebx, dword [eax]
mov dword [esp + 0x24], ebx
movzx ecx, word [edx + 0xe]
lea esi, [ebx*2 + 3]
and esi, 0xfffffffc
mov dword [esp + 0x34], ecx
mov dword [esp + 0x48], esi
lea esi, [ebx + ebx*2]
shl esi, 3
mov dword [esp + 0x4c], esi
lea esi, [ecx + ecx*2]
imul ecx, ebx
shl esi, 2
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
shl ecx, 2
mov dword [esp + 0x44], ecx
test eax, eax
jne 0x1004c28c
lea eax, [ebx + 4]
lea ecx, [ecx + eax*4]
add ecx, eax
mov eax, dword [edx + 0x2e0]
add ecx, dword [esp + 0x38]
add ecx, dword [esp + 0x4c]
add ecx, dword [esp + 0x48]
mov dword [eax + 0x10], ecx
lea eax, [esp + 0x18]
mov edx, dword [edx + 0x2e0]
mov ecx, dword [esp + 0x40]
push eax
mov edx, dword [edx + 0x10]
call fcn.1000e6e0
mov edi, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x30], eax
test edi, edi
jne 0x1004c3c4
mov ecx, dword [esp + 0x14]
mov edi, eax
mov edx, dword [esp + 0x38]
mov ecx, dword [ecx + 0x2e0]
lea eax, [edi + 0x14]
mov dword [esp + 0x18], eax
add eax, dword [esp + 0x48]
mov dword [ecx + 0xc], edi
mov ecx, dword [esp + 0x34]
mov dword [edi + 0xc], eax
add eax, dword [esp + 0x4c]
add edx, eax
mov dword [edi], ebx
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], ecx
mov dword [edi + 0x10], eax
test ecx, ecx
je 0x1004be30
mov edi, dword [esp + 0x34]
lea eax, [ebx*4]
mov esi, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x20], eax
mov ebx, eax
nop word [eax + eax]
mov eax, dword [esi + 0x10]
lea ecx, [ecx + 0xc]
mov dword [ecx + eax - 0xc], edx
add edx, ebx
sub edi, 1
jne 0x1004be10
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x44]
add ecx, eax
add ecx, dword [esp + 0x38]
test ebx, ebx
je 0x1004be52
xor edx, edx
mov eax, dword [edi + 0xc]
lea edx, [edx + 0x18]
mov dword [edx + eax - 0x18], ecx
add ecx, 5
sub ebx, 1
jne 0x1004be40
movzx ebx, word [esp + 0x5c]
xor edi, edi
add ebx, dword [esp + 0x28]
mov eax, dword [esi + 0x14]
test eax, eax
je 0x1004be78
push edi
push edi
push ebx
push esi
call eax
add esp, 0x10
test eax, eax
je 0x1004be84
mov edi, 0x55
jmp 0x1004be87
cmp ebx, dword [esi + 4]
jbe 0x1004be84
mov edi, 0x55
jmp 0x1004be87
mov dword [esi + 8], ebx
test edi, edi
jne 0x1004c3c4
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], edi
mov ebx, dword [eax + 0xc]
cmp dword [esp + 0x24], edi
jbe 0x1004bf47
lea eax, [esp + 0x68]
mov edx, 0x10240150
push eax
mov ecx, esi
call fcn.1000e360
mov edi, eax
add esp, 4
test edi, edi
jne 0x1004c3c4
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x70]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x74]
mov dword [ebx + 0xc], eax
movzx eax, word [esp + 0x7a]
mov dword [ebx + 0x14], eax
mov eax, dword [ebx]
mov dword [ebx + 0x10], ecx
shr ecx, 0x18
mov byte [eax], cl
mov ecx, dword [ebx]
mov al, byte [ebx + 0x12]
mov byte [ecx + 1], al
mov ecx, dword [ebx]
mov al, byte [ebx + 0x11]
mov byte [ecx + 2], al
mov ecx, dword [ebx]
mov al, byte [ebx + 0x10]
mov byte [ecx + 3], al
mov eax, dword [ebx]
mov ecx, dword [esp + 0x18]
mov byte [eax + 4], 0
mov ax, word [esp + 0x78]
mov word [ecx], ax
mov eax, dword [ebx + 8]
cmp dword [ebx + 4], eax
jg 0x1004bf24
cmp eax, dword [ebx + 0xc]
jle 0x1004bf2a
mov dword [ebx + 4], eax
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x1c]
add ecx, 2
inc eax
mov dword [esp + 0x18], ecx
add ebx, 0x18
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x24]
jb 0x1004bea4
mov eax, dword [esp + 0x2c]
xor ebx, ebx
xor edi, edi
test eax, eax
js 0x1004bf9c
je 0x1004bf98
cmp eax, 0x1fffffff
jle 0x1004bf61
lea edi, [ebx + 0xa]
jmp 0x1004bfa1
shl eax, 2
push eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x44]
push eax
mov eax, dword [eax + 4]
call eax
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x1004bf81
lea edi, [eax + 0x40]
jmp 0x1004bfa1
cmp dword [esp + 0x2c], edi
jle 0x1004bfa1
push dword [esp + 0x20]
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
jmp 0x1004bfa1
xor ebx, ebx
jmp 0x1004bfa1
mov edi, 6
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x2e0]
mov dword [eax + 0x14], ebx
test edi, edi
jne 0x1004c3c4
mov ax, word [esp + 0x62]
mov word [esp + 0x2c], ax
test ax, ax
je 0x1004c00f
mov eax, dword [ecx + 0x2e0]
cmp byte [eax + 0x18], 0
jne 0x1004c00f
mov ebx, dword [esi + 8]
call fcn.1004a110
mov eax, dword [esi + 0x14]
test eax, eax
je 0x1004bff4
push edi
push edi
push ebx
push esi
call eax
add esp, 0x10
test eax, eax
je 0x1004c000
mov edi, 0x55
jmp 0x1004c003
cmp ebx, dword [esi + 4]
jbe 0x1004c000
mov edi, 0x55
jmp 0x1004c003
mov dword [esi + 8], ebx
test edi, edi
jne 0x1004c3c4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], 0
mov ebx, dword [eax + 0x10]
mov eax, dword [ecx + 0x2e0]
mov dword [esp + 0x18], ebx
mov eax, dword [eax + 0x14]
mov dword [esp + 0x1c], eax
movzx eax, word [esp + 0x2c]
test eax, eax
je 0x1004c1df
mov eax, dword [esp + 0x24]
lea ecx, [eax*4]
movzx eax, byte [esp + 0x13]
add eax, 2
lea eax, [ecx + eax*2]
mov dword [esp + 0x3c], eax
jmp 0x1004c05c
mov ebx, dword [esp + 0x18]
mov edx, eax
mov ecx, esi
call fcn.1000deb0
mov edi, eax
mov dword [esp + 0x28], edi
test edi, edi
jne 0x1004c3c4
mov ecx, dword [esi + 0x20]
xor edx, edx
lea eax, [ecx + 1]
cmp eax, dword [esi + 0x24]
jae 0x1004c08f
movzx edx, byte [ecx]
add ecx, 2
shl edx, 8
movzx eax, byte [ecx - 1]
or edx, eax
mov dword [esi + 0x20], ecx
mov dword [ebx + 4], edx
mov edx, dword [esi + 0x20]
lea eax, [edx + 1]
cmp eax, dword [esi + 0x24]
lea ecx, [edx + 2]
mov eax, dword [esp + 0x24]
cmovae ecx, edx
mov dword [esi + 0x20], ecx
mov ebx, dword [ebx]
test eax, eax
je 0x1004c0f2
mov edi, eax
mov edx, dword [esi + 0x20]
xor eax, eax
lea ecx, [edx + 3]
cmp ecx, dword [esi + 0x24]
jae 0x1004c0e1
movzx eax, byte [edx]
add edx, 4
shl eax, 8
movzx ecx, byte [edx - 3]
or eax, ecx
movzx ecx, byte [edx - 2]
shl eax, 8
or eax, ecx
movzx ecx, byte [edx - 1]
shl eax, 8
or eax, ecx
mov dword [esi + 0x20], edx
mov dword [ebx], eax
add ebx, 4
sub edi, 1
jne 0x1004c0b3
mov edi, dword [esp + 0x28]
cmp byte [esp + 0x13], 0
je 0x1004c11a
mov edx, dword [esi + 0x20]
xor ecx, ecx
lea eax, [edx + 1]
cmp eax, dword [esi + 0x24]
jae 0x1004c115
movzx ecx, byte [edx]
add edx, 2
shl ecx, 8
movzx eax, byte [edx - 1]
or ecx, eax
mov dword [esi + 0x20], edx
jmp 0x1004c11f
mov ecx, 0xffff
mov eax, dword [esp + 0x18]
push dword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
mov edx, ebx
mov dword [eax + 8], ecx
push dword [eax]
mov ecx, dword [esp + 0x1c]
call fcn.1004b8f0
lea eax, [ebx*4]
add esp, 8
add dword [esp + 0x1c], eax
cmp dword [esi + 0x14], 0
je 0x1004c168
mov eax, dword [esi]
mov ecx, dword [esi + 0x1c]
test eax, eax
je 0x1004c162
push eax
mov eax, dword [ecx + 8]
push ecx
call eax
add esp, 8
mov dword [esi], 0
mov eax, dword [esp + 0x20]
movzx ecx, word [esp + 0x2c]
inc eax
add dword [esp + 0x18], 0xc
cmp eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
jb 0x1004c058
mov ecx, dword [esp + 0x14]
movzx eax, word [esp + 0x2c]
cmp dword [esp + 0x34], eax
je 0x1004c27f
mov eax, dword [ecx + 0x21c]
lea edx, [esp + 0x20]
push edx
lea edx, [esp + 0x38]
mov dword [esp + 0x20], eax
push edx
mov eax, dword [eax + 0x94]
push 0x11
push ecx
call eax
mov esi, dword [esp + 0x24]
add esp, 0x10
movzx eax, al
test eax, eax
je 0x1004c1e5
mov dword [esp + 0x18], 0x11
jmp 0x1004c217
mov ebx, dword [esp + 0x24]
jmp 0x1004c199
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x38]
push eax
mov eax, dword [esp + 0x24]
push 2
push esi
mov eax, dword [eax + 0x94]
call eax
movzx eax, al
add esp, 0x10
test eax, eax
mov edx, 2
mov ecx, 0xffffffff
cmovne ecx, edx
mov dword [esp + 0x18], ecx
test eax, eax
je 0x1004c27f
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x38]
push eax
mov eax, dword [esp + 0x24]
push 6
push esi
mov eax, dword [eax + 0x94]
call eax
add esp, 0x10
test al, al
je 0x1004c27f
movzx eax, word [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x10]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [eax + ecx*4]
mov dword [eax + ecx*4 + 8], 6
mov esi, dword [esi + 0xc]
test ebx, ebx
je 0x1004c27f
lea ecx, [esi + 8]
mov esi, ebx
nop dword [eax]
mov eax, dword [ecx]
lea ecx, [ecx + 0x18]
mov dword [edx], eax
lea edx, [edx + 4]
sub esi, 1
jne 0x1004c270
mov ecx, dword [esp + 0x14]
call fcn.1004b1a0
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x54], 0
je 0x1004c3c4
mov eax, dword [edx + 0x2e0]
xor edi, edi
xor esi, esi
mov dword [esp + 0x28], edi
mov eax, dword [eax + 0x10]
mov dword [esp + 0x3c], eax
test eax, eax
jle 0x1004c2e2
push eax
mov eax, dword [esp + 0x44]
push eax
mov eax, dword [eax + 4]
call eax
mov esi, eax
add esp, 8
test esi, esi
jne 0x1004c2cd
mov edx, dword [esp + 0x14]
lea edi, [eax + 0x40]
jmp 0x1004c2e9
push dword [esp + 0x3c]
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x20]
add esp, 0xc
jmp 0x1004c2ed
jns 0x1004c2ed
mov edi, 6
mov dword [esp + 0x28], edi
test edi, edi
jne 0x1004c3c4
mov eax, dword [edx + 0x2e0]
push dword [eax + 0x10]
push dword [eax + 0xc]
push esi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x54]
add esp, 0xc
mov ecx, dword [esp + 0x4c]
add eax, 0x14
mov edx, dword [esp + 0x38]
add eax, esi
add ecx, eax
mov dword [esi + 0xc], eax
add edx, ecx
mov dword [esi + 0x10], ecx
cmp dword [esi + 8], edi
jbe 0x1004c360
lea eax, [ebx*4]
xor ecx, ecx
mov dword [esp + 0x3c], eax
xor ebx, ebx
mov edi, eax
nop dword [eax + eax]
mov eax, dword [esi + 0x10]
lea ecx, [ecx + 0xc]
inc ebx
mov dword [ecx + eax - 0xc], edx
add edx, edi
cmp ebx, dword [esi + 8]
jb 0x1004c340
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x44]
add edx, ecx
add edx, dword [esp + 0x38]
test ebx, ebx
je 0x1004c3be
nop
mov ecx, dword [eax + 0x10]
mov dword [eax], edx
cmp ecx, 0x77676874
jne 0x1004c385
mov dword [eax], str.Weight
jmp 0x1004c3b3
cmp ecx, 0x77647468
jne 0x1004c395
mov dword [eax], str.Width
jmp 0x1004c3b3
cmp ecx, 0x6f70737a
jne 0x1004c3a5
mov dword [eax], str.OpticalSize
jmp 0x1004c3b3
cmp ecx, 0x736c6e74
jne 0x1004c3b3
mov dword [eax], str.Slant
add edx, 5
add eax, 0x18
sub ebx, 1
jne 0x1004c370
mov eax, dword [esp + 0x54]
mov dword [eax], esi
mov ecx, dword [esp + 0x7c]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10117c9f
mov esp, ebp
pop ebp
ret