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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x98
mov eax, dword [edx + 0x34]
mov dword [esp + 0x94], ecx
mov ecx, dword [edx + 0x108]
mov esi, dword [esp + 0xac]
mov edi, dword [edx + 8]
mov dword [esp + 0x84], 1
and dword [esp + 0x88], 0
and dword [esp + 0x8c], 0
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], eax
xor eax, 0x110000
mov dword [esp + 0x1c], ecx
lea ebp, [esi + 0x38]
or eax, ecx
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x80], ebp
sete al
test edi, edi
je 0x4191b1
test ecx, ecx
jne 0x4191b1
test al, al
jne 0x4191b5
cmp byte [edx + 0x118], 4
jne 0x41963a
movsd xmm0, qword [ebp]
movsd xmm1, qword [ebp + 6]
lea esi, [esp + 0x50]
mov ecx, ebp
movsd qword [esi + 6], xmm1
movsd qword [esi], xmm0
call fcn.0041905e
lea ecx, [esp + 0xc]
mov dword [ecx], eax
lea eax, [esp + 0x60]
mov dword [ecx + 4], edx
mov dword [eax], esi
mov dword [eax + 4], 0x415a05
mov dword [eax + 8], ecx
lea ecx, [esp + 0x28]
mov dword [eax + 0xc], fcn.00417b94
mov dword [ecx], str.assertion_failed:_mid___self.len__chunk_size_must_be_non_zero
push 2
pop edx
mov dword [ecx + 4], edx
and dword [ecx + 0x10], 0
mov dword [ecx + 8], eax
lea eax, [esp + 0x84]
mov dword [ecx + 0xc], edx
push ecx
jmp 0x419632
test al, al
je 0x4191d2
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0x110000
mov dword [esp + 0x40], 0
jmp 0x41929b
mov dword [esp + 8], ecx
mov ecx, edx
add esi, 0x2a
call fcn.0041966e
xor ecx, ecx
test eax, eax
mov eax, 0x5a877c
mov edx, 0x62d77b
mov ebx, 0x582288
cmove edx, eax
mov eax, 0x62ccc7
sete cl
cmove esi, ebp
cmove eax, ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x40], ecx
cmp byte [ebx + 0x104], 0
lea ebx, [esp + 0x44]
cmovns esi, ebp
cmovns eax, edx
inc ecx
lea ebp, [esp + 0x50]
movsd xmm1, qword [esi + 6]
movsd xmm0, qword [esi]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov ecx, esi
movsd qword [ebp + 6], xmm1
movsd qword [ebp], xmm0
call fcn.0041905e
lea ecx, [esp + 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
lea eax, [esp + 0x28]
mov edx, fcn.00417b94
mov dword [eax], ebp
mov dword [eax + 4], 0x415a05
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0x60]
mov dword [eax + 0x14], edx
mov dword [ecx], str.assertion_failed:_mid___self.len__chunk_size_must_be_non_zero
push 3
pop edx
mov dword [ecx + 4], edx
and dword [ecx + 0x10], 0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
lea eax, [esp + 0x84]
push ecx
push eax
call fcn.004190bd
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
add esp, 8
mov bl, byte [esp + 0xb0]
cmp bl, 2
jne 0x4192ad
mov bl, byte [edx + 0x104]
and dword [esp + 0x10], 0
and bl, 1
and dword [esp + 0x14], 0
xor eax, eax
inc eax
test edi, edi
mov edi, eax
mov dword [esp + 0xc], eax
je 0x4192cc
mov edi, dword [edx + 0xc]
mov eax, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [edx + 0xc4]
test eax, eax
je 0x41930f
mov edx, dword [edx + 0xbc]
lea esi, [esp + 0x50]
mov ecx, esi
push eax
call fcn.0041967c
pop eax
mov edx, dword [esi + 8]
mov ebp, dword [esi]
cmp edx, 1
jne 0x4193c2
mov eax, dword [esp + 0x54]
mov esi, dword [ebp]
mov dword [esp + 4], ebp
mov ebp, dword [ebp + 4]
mov byte [esp + 3], bl
jmp 0x419342
mov byte [esp + 3], bl
push 8
pop ecx
mov ebx, edi
mov edi, edx
push 4
pop edx
call fcn.004fc1d3
mov esi, dword [edi + 0x3c]
mov ebp, dword [edi + 0x40]
mov dword [esp + 4], eax
mov edi, ebx
mov dword [eax], esi
mov dword [eax + 4], ebp
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x54], 1
inc eax
mov dword [esp + 0x20], eax
cmp edi, 1
mov dword [esp + 8], edi
adc edi, 0
and dword [esp + 0x58], 0
mov ecx, edi
call fcn.004b6409
lea ebx, [esp + 0x28]
mov dword [ebx], eax
mov dword [ebx + 4], edx
and dword [ebx + 8], 0
mov ecx, ebx
mov edx, edi
call fcn.004196e4
mov eax, dword [ebx + 8]
lea ecx, [eax*8]
add eax, edi
dec edi
add ecx, dword [ebx]
mov bl, byte [esp + 3]
sub edi, 1
jb 0x419394
mov dword [ecx], esi
mov dword [ecx + 4], ebp
add ecx, 8
jmp 0x419385
mov dword [ecx], esi
mov dword [ecx + 4], ebp
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x58], eax
movsd xmm0, qword [esp + 0x28]
movsd qword [esp + 0x50], xmm0
call fcn.0041872c
mov ebp, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x78], edx
lea edx, [edx*8]
mov dword [esp + 0x20], 0
mov dword [esp + 4], ebp
xor eax, 0x110000
or eax, dword [esp + 0x1c]
setne al
test edi, edi
setne cl
and bl, cl
lea ecx, [esp + 0x60]
or bl, al
mov eax, dword [esp + 0x24]
mov byte [esp + 3], bl
test edx, edx
je 0x4194bc
lea eax, [esp + 0x90]
test bl, bl
mov dword [esp + 8], edx
mov dword [esp + 0x90], ebp
je 0x419432
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0x4196ce
mov dword [esp + 0x28], 0x582248
jmp 0x419446
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0x4196ce
mov dword [esp + 0x28], 0x627de0
mov dword [esp + 0x2c], 2
and dword [esp + 0x38], 0
lea eax, [esp + 0x44]
lea edx, [esp + 0x28]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 1
call fcn.00418aaa
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
sub dword [esp + 0x20], 1
lea ecx, [esp + 0xc]
jb 0x41948f
push 0x20
pop edx
call fcn.00418db6
lea ecx, [esp + 0xc]
add ebp, 8
mov edx, ebx
push edi
call fcn.00416208
pop eax
mov ecx, ebx
mov edx, esi
call fcn.004499b4
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x24]
mov bl, byte [esp + 3]
lea ecx, [esp + 0x60]
add edx, 0xfffffff8
jmp 0x4193fe
cmp dword [esp + 0x1c], 0
jne 0x4194f1
cmp dword [esp + 0x18], 0x110000
jne 0x4194f1
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 4]
lea ebp, [esp + 0x28]
cmp ecx, dword [esp + 0x7c]
jb 0x41950a
cmp byte [eax + 0x118], 1
jne 0x41951b
jmp 0x41950a
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 4]
lea ebp, [esp + 0x28]
cmp eax, dword [esp + 0x7c]
jae 0x41951b
lea ecx, [esp + 0xc]
mov edx, 0x627e62
push 3
call fcn.00416208
pop eax
lea esi, [esp + 0x50]
mov eax, dword [esp + 0x14]
movsd xmm0, qword [esp + 0xc]
mov ecx, edi
mov edx, dword [esi + 4]
mov dword [esp + 0x4c], eax
movsd qword [esp + 0x44], xmm0
call fcn.0041872c
movsd xmm1, qword [ebx + 6]
movsd xmm0, qword [ebx]
mov ecx, ebx
movsd qword [esi + 6], xmm1
movsd qword [esi], xmm0
call fcn.0041905e
mov dword [esp + 0xc], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], 0x415a05
mov dword [esp + 0x10], edx
mov dword [esp + 0x60], 0x6290bc
mov dword [esp + 0x30], eax
lea eax, [esp + 0xc]
mov dword [esp + 0x34], fcn.00417ace
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], fcn.00417b94
push 3
pop eax
mov dword [esp + 0x64], eax
and dword [esp + 0x70], 0
lea edi, [esp + 0x60]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x84]
push edi
push eax
call fcn.004190bd
pop ecx
pop edx
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
call fcn.004499b4
cmp byte [esp + 0x40], 0
je 0x41963a
movsd xmm1, qword [ebx + 6]
movsd xmm0, qword [ebx]
mov ecx, ebx
movsd qword [esp + 0x56], xmm1
movsd qword [esp + 0x50], xmm0
call fcn.0041905e
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], 0x415a05
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], 0x58229c
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], fcn.00417b94
push 2
pop eax
mov dword [esp + 0x2c], eax
and dword [esp + 0x38], 0
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], eax
push ebp
lea eax, [esp + 0x88]
push eax
call fcn.004190bd
pop ecx
pop edx
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x94]
movsd xmm0, qword [esp + 0x84]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret