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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x4a0
test ecx, ecx
je 0x100059b6
mov edi, edx
mov esi, ecx
mov ecx, dword [ecx]
mov eax, dword [esi + 4]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov ebx, 0xfffffffe
test edx, edx
je 0x100059b9
mov dword [esp + 8], ecx
mov dword [esp + 0x14], eax
push edi
call sub.msvcrt.dll_strlen
add esp, 4
test eax, eax
je 0x100059b9
mov ecx, dword [esi + 0x5c]
test ecx, ecx
je 0x1000581a
push ecx
mov ebx, eax
call sub.msvcrt.dll_free
mov eax, ebx
mov ebx, 0xfffffffe
add esp, 4
mov dword [esi + 0x5c], 0
mov ecx, edi
mov dword [esp + 0x18], eax
mov edx, eax
call fcn.1000649a
mov dword [esi + 0x5c], eax
mov dword [esp + 0xc], eax
test eax, eax
je 0x100059b9
mov eax, dword [esi + 0x14]
cmp eax, 1
jne 0x100059c3
mov edi, dword [esi + 0x48]
mov ecx, 0x18
test edi, edi
je 0x10005d99
test byte [edi + 0x31], 8
jne 0x10005cd4
cmp dword [edi + 0x24], 0
je 0x10005cd4
mov eax, dword [edi + 0x20]
mov dword [esp + 0x38], eax
mov ebx, dword [esi + 0x10]
push dword [esp + 0xc]
call sub.msvcrt.dll_strlen
add esp, 4
mov dword [esp + 0x34], eax
mov ecx, 0x1c
test ebx, ebx
je 0x10005d99
mov dword [esp + 4], esi
xor edx, edx
add ebx, 0xffffffff
mov esi, 0
adc esi, 0xffffffff
mov eax, dword [edi]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x2c], eax
xor ecx, ecx
mov dword [esp + 0x14], ebx
sub ebx, edx
mov dword [esp + 0x10], esi
sbb esi, ecx
shrd ebx, esi, 1
sar esi, 1
mov dword [esp + 0x18], edx
add ebx, edx
mov dword [esp + 0x24], ecx
adc esi, ecx
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], ebx
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax*4]
mov edx, dword [esp + 0x30]
lea ecx, [edx + eax]
lea edx, [edx + eax + 0x2e]
movzx eax, word [edx - 0x12]
mov edi, eax
mov esi, dword [esp + 0x34]
sub edi, esi
mov dword [esp + 8], edi
cmovae eax, esi
lea edi, [eax + ecx]
add edi, 0x2e
test eax, eax
je 0x10005949
mov esi, dword [esp + 0xc]
movzx eax, byte [edx]
mov ecx, eax
add cl, 0xbf
mov ch, al
add ch, 0x20
cmp cl, 0x1a
movzx ebx, ch
cmovae ebx, eax
movzx ecx, byte [esi]
mov eax, ecx
add al, 0xbf
mov ah, cl
add ah, 0x20
cmp al, 0x1a
movzx eax, ah
cmovae eax, ecx
cmp bl, al
jne 0x1000594d
inc edx
inc esi
mov eax, ebx
cmp edx, edi
jb 0x10005911
jmp 0x1000594d
xor ebx, ebx
xor eax, eax
movzx esi, bl
movzx eax, al
sub esi, eax
cmp edx, edi
cmove esi, dword [esp + 8]
test esi, esi
je 0x10005dc8
mov edx, dword [esp + 0x20]
mov eax, edx
add eax, 1
mov edi, dword [esp + 0x3c]
mov ecx, edi
adc ecx, 0
add edx, 0xffffffff
adc edi, 0xffffffff
test esi, esi
mov ebx, dword [esp + 0x14]
cmovns ebx, edx
mov esi, dword [esp + 0x10]
cmovns esi, edi
mov edx, dword [esp + 0x18]
cmovs edx, eax
mov eax, dword [esp + 0x24]
cmovs eax, ecx
mov ecx, eax
cmp ebx, edx
mov eax, esi
sbb eax, ecx
jge 0x100058ad
mov esi, dword [esp + 4]
mov ecx, 0x1c
jmp 0x10005d99
xor ebx, ebx
dec ebx
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esi]
mov ecx, dword [esi + 0x20]
mov dword [esp + 4], esi
lea esi, [ecx - 1]
mov edi, esi
and edi, edx
mov dword [esp + 0xc], eax
mov eax, ecx
sub eax, edi
and eax, esi
xor esi, esi
cmp ecx, 1
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0x24]
sbb ecx, esi
mov ecx, dword [esp + 4]
mov edi, dword [ecx + 4]
mov ecx, dword [esp + 4]
mov esi, dword [ecx + 0x50]
mov ebx, dword [esp + 4]
mov ebx, dword [ebx + 0x10]
mov ecx, dword [esp + 4]
mov dword [ecx + 0x58], ebx
mov ecx, 0
cmovb eax, ecx
mov dword [esp + 0x10], eax
mov eax, esi
xor ebx, ebx
mov ecx, esi
and ecx, 0xf
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 4]
mov esi, 0
mov dword [ecx + 0x70], esi
xorps xmm0, xmm0
mov ecx, dword [esp + 4]
movups xmmword [ecx + 0x60], xmm0
mov ecx, dword [esp + 4]
mov dword [ecx + 0x78], edx
mov ecx, dword [esp + 4]
mov dword [ecx + 0x7c], edi
mov ecx, dword [esp + 4]
mov dword [ecx + 0xa0], edx
mov ecx, dword [esp + 4]
mov dword [ecx + 0xa4], edi
setne bl
mov ecx, dword [esp + 4]
movups xmmword [ecx + 0x80], xmm0
mov ecx, dword [esp + 4]
movups xmmword [ecx + 0x8e], xmm0
shl ebx, 3
mov ecx, dword [esp + 4]
mov word [ecx + 0xa8], bx
mov ecx, dword [esp + 4]
mov dword [ecx + 0x4e008], esi
mov esi, dword [esp + 4]
mov ebx, 0xfffffffc
cmp dword [esp + 0xc], 2
jne 0x10005da8
cmp dword [esi + 0x48], 0
je 0x10005da8
mov ebx, 0xfffffffb
bt eax, 0xa
jb 0x10005da8
mov ecx, esi
push dword [esp + 0x10]
push edi
call fcn.10006806
add esp, 8
mov ebx, 0xfffffff9
test eax, eax
je 0x10005da8
xor ecx, ecx
mov edx, dword [esp + 8]
add edx, dword [esp + 0x10]
mov dword [esp + 8], edx
mov edi, dword [esp + 0x14]
adc edi, ecx
lea eax, [esi + 0x80]
mov dword [esp + 0xc], eax
lea esi, [esp + 0x40]
mov dword [esi], edx
mov dword [esi + 4], edi
push ecx
call dword [sym.imp.msvcrt.dll_time]
add esp, 4
mov ecx, dword [esp + 4]
mov dword [ecx + 0x4e00c], eax
lea edx, [esp + 0x2a]
mov ecx, eax
lea eax, [esp + 0x28]
push eax
call fcn.10006895
add esp, 4
mov eax, 0xfffffffe
cmp eax, dword [esp + 8]
mov eax, 0
sbb eax, edi
mov eax, 0
cmovae esi, eax
lea ecx, [esp + 0x48]
xor edx, edx
push esi
push eax
call fcn.100068e6
add esp, 8
mov ecx, eax
mov eax, dword [esp + 4]
movzx eax, word [eax + 0xa8]
mov dword [esp + 8], eax
lea eax, [esp + 0x2a]
movzx eax, word [eax]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x28]
movzx esi, word [eax]
mov edx, 0xffff
mov dword [esp + 0x20], ecx
mov eax, ecx
and eax, edx
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0xc]
mov ecx, edi
push esi
push dword [esp + 0x18]
mov esi, dword [esp + 0xc]
push dword [esp + 0x10]
push eax
call fcn.10006942
add esp, 0x10
mov eax, dword [esi + 0x78]
add eax, dword [esp + 0x10]
mov edx, 0
adc edx, dword [esi + 0x7c]
mov ecx, dword [esi + 0x44]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], edx
push 0x1e
push edi
push edx
push eax
push ecx
call dword [esi + 0x3c]
add esp, 0x14
cmp eax, 0x1e
jne 0x10005da8
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov edx, eax
or edx, ecx
je 0x10005bf2
add eax, 0xffffffff
adc ecx, 0xffffffff
and eax, dword [esi + 0xa0]
and ecx, dword [esi + 0xa4]
or ecx, eax
jne 0x10005e49
mov ecx, dword [esp + 0x10]
add ecx, 0x1e
mov eax, dword [esi + 0x7c]
add ecx, dword [esi + 0x78]
adc eax, 0
mov dword [esi + 0x78], ecx
mov dword [esi + 0x7c], eax
mov edi, dword [esp + 0x18]
push edi
push dword [esi + 0x5c]
push eax
push ecx
push dword [esi + 0x44]
call dword [esi + 0x3c]
add esp, 0x14
mov ebx, 0xfffffff8
cmp eax, edi
jne 0x10005da8
mov eax, dword [esi + 0x44]
mov dword [esp + 0xc], eax
mov ecx, dword [esi + 0x7c]
mov edx, dword [esi + 0x78]
add edx, edi
adc ecx, 0
mov dword [esi + 0x78], edx
mov dword [esi + 0x7c], ecx
mov edi, dword [esp + 0x20]
push edi
lea eax, [esp + 0x4c]
push eax
push ecx
push edx
push dword [esp + 0x1c]
call dword [esi + 0x3c]
add esp, 0x14
cmp eax, edi
jne 0x10005da8
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x78]
add ecx, edi
adc eax, 0
mov dword [esi + 0x78], ecx
mov dword [esi + 0x7c], eax
mov edi, dword [esp + 0x24]
test edi, edi
je 0x10005e42
lea edx, [esi + 0xb0]
mov dword [esi + 0xb0], esi
mov dword [esi + 0xb8], ecx
mov dword [esi + 0xbc], eax
xor ebx, ebx
mov dword [esi + 0xc4], ebx
mov dword [esi + 0xc0], ebx
add esi, 0xc8
cmp edi, 0xa
mov ecx, 0xa
cmovl ecx, edi
xor eax, eax
cmp edi, 4
setb al
shl eax, 0xe
or eax, dword [ecx*4 + 0x100147c0]
mov ecx, esi
push eax
call fcn.100069a4
add esp, 4
jmp 0x100059b9
push dword [esp + 0xc]
call sub.msvcrt.dll_strlen
add esp, 4
mov ecx, 0x18
mov dword [esp + 8], eax
cmp eax, 0xffff
ja 0x10005d99
mov eax, dword [esi + 0x10]
mov ecx, 0x1c
mov dword [esp + 0x10], eax
test eax, eax
je 0x10005d99
mov eax, dword [edi]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx + eax*4]
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + edi + 0x1c]
cmp dword [esp + 8], ecx
jne 0x10005d85
test cx, cx
je 0x10005dc8
add edi, dword [esp + 0x14]
xor esi, esi
mov eax, dword [esp + 0xc]
movsx edx, byte [eax + esi]
mov ecx, edx
mov eax, 0xff
and ecx, eax
mov ebx, edx
add bl, 0xbf
add ecx, 0x20
cmp bl, 0x1a
cmovae ecx, edx
movsx edx, byte [edi + esi + 0x2e]
mov ebx, edx
and ebx, eax
mov eax, edx
add al, 0xbf
add ebx, 0x20
cmp al, 0x1a
cmovae ebx, edx
cmp ecx, ebx
jne 0x10005d85
inc esi
cmp dword [esp + 8], esi
jne 0x10005d44
jmp 0x10005dc8
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, dword [esp + 0x10]
mov esi, dword [esp + 4]
jne 0x10005d1b
jmp 0x100059ac
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x58], 0xffffffff
mov ebx, 0xfffffffd
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x100059b9
push eax
call sub.msvcrt.dll_free
add esp, 4
mov dword [esi + 0x5c], 0
jmp 0x100059b9
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x58], edx
mov ebx, 0xfffffffd
test edx, edx
js 0x10005da8
lea eax, [esp + 0x48]
mov ecx, esi
push eax
call fcn.100064d4
add esp, 4
test eax, eax
je 0x10005da8
movdqu xmm0, xmmword [esp + 0x68]
pshufd xmm0, xmm0, 0x4e
movdqu xmmword [esi + 0x60], xmm0
mov eax, dword [esp + 0x64]
mov dword [esi + 0x70], eax
movsd xmm0, qword [esp + 0x50]
movsd qword [esi + 0x78], xmm0
movsd xmm0, qword [esp + 0x80]
movsd qword [esi + 0xa0], xmm0
movzx eax, word [esp + 0x5e]
mov word [esi + 0xa8], ax
mov eax, dword [esp + 0x7c]
mov dword [esi + 0x4e008], eax
mov eax, dword [esp + 0x60]
mov dword [esi + 0x4e00c], eax
xor ebx, ebx
jmp 0x100059b9
push 0x2d47
push str.src_compat_dvfs_stb_zip_v221.h
push str._zip__entry.header_offset___pzip__m_file_offset_alignment___1____0
call dword [sym.imp.msvcrt.dll__assert]