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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc8
mov eax, dword [ecx + 0xc]
push esi
push edi
mov edi, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], ecx
movzx eax, word [edi]
cmp ax, 0x40
jle 0x1d560d0
push 0x40
push 0x524424
push ecx
call fcn.01d2a480
add esp, 0xc
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ecx]
movsx esi, ax
shl esi, 6
add esi, 0x27
mov dword [esp + 0x2c], ecx
and esi, 0xfffffff8
lea edx, [esi + 0x264]
call fcn.01d28810
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
cmp byte [ecx + 0x1e], 0
jne 0x1d56502
movsx ecx, word [edi]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 8], edi
call fcn.01d36760
mov ecx, dword [esp + 0x10]
add esi, ecx
push 0x104
push 0
mov dword [esp + 0x3c], esi
mov dword [ecx + 0x14], eax
mov eax, dword [ebp + 0x10]
mov word [ecx + 4], ax
lea eax, [esi + 0x160]
push eax
mov dword [ecx + 0x1c], esi
mov dword [esp + 0x60], eax
call fcn.01d746e0
mov edx, dword [esp + 0x20]
lea eax, [esi + 0x160]
add esp, 0xc
mov ecx, esi
push eax
call fcn.01d53170
mov esi, dword [ebp + 8]
add esp, 4
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.01d42680
mov ecx, dword [esp + 0x34]
mov edx, esi
push 0x45
call fcn.01d53310
add esp, 4
test esi, esi
je 0x1d561a7
cmp word [edi], 0
je 0x1d56190
mov ecx, esi
call fcn.01d406c0
test eax, eax
je 0x1d561a7
mov eax, dword [esp + 0x10]
mov edx, esi
mov ecx, dword [esp + 0x14]
push 8
push dword [eax + 0x14]
call fcn.01d42a70
add esp, 8
xor eax, eax
xor esi, esi
cmp ax, word [edi]
jge 0x1d561ff
add edi, 0x14
mov edx, dword [edi + 0xc]
mov ecx, dword [esp + 0x54]
call fcn.01d533a0
mov eax, dword [edi]
test eax, eax
je 0x1d561ec
test byte [eax + 0x22], 0x10
je 0x1d561ec
xor ecx, ecx
mov eax, esi
bts ecx, eax
xor edx, edx
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov eax, dword [esp + 0x34]
cmovae edx, ecx
or dword [eax + 8], ecx
or dword [eax + 0xc], edx
mov eax, dword [esp + 0xc]
inc esi
add edi, 0x38
movsx eax, word [eax]
cmp esi, eax
jl 0x1d561b3
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x34]
mov ecx, edi
call fcn.01d53750
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x1e], 0
jne 0x1d564fe
mov edx, dword [esp + 0xc]
xor ecx, ecx
mov edi, dword [esp + 0x10]
or eax, 0xffffffff
add edi, 0x20
mov dword [esp + 0x20], eax
or esi, 0xffffffff
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x24], esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x44], edi
cmp cx, word [edx]
jge 0x1d56519
xorps xmm0, xmm0
mov dword [esp + 0x50], 1
movlpd qword [esp + 0x70], xmm0
or edi, 0xffffffff
movlpd qword [esp + 0x78], xmm0
movsd xmm0, qword [0x5249e8]
mov dword [esp + 0x40], edi
movsd qword [esp + 0x60], xmm0
jmp 0x1d5628a
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
test edi, edi
jns 0x1d56438
cmp dword [esp + 0x50], 0
je 0x1d562b0
xorps xmm0, xmm0
movlpd qword [esp + 0x58], xmm0
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x58]
jmp 0x1d562b4
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], eax
mov esi, ecx
lea eax, [ecx*8]
sub eax, ecx
inc eax
lea edi, [edx + eax*8]
movsx eax, word [edx]
cmp ecx, eax
jge 0x1d56429
mov edx, dword [esp + 0x10]
mov eax, ecx
add edx, 0x5c
shl eax, 6
add eax, edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x58], eax
nop dword [eax + eax]
mov al, byte [edi + 0x15]
and al, 0xa
mov byte [esp + 0x1f], al
cmp esi, ecx
je 0x1d56305
test al, al
jne 0x1d56429
mov edx, dword [edi + 0x18]
mov ecx, dword [esp + 0x54]
call fcn.01d53360
and eax, dword [esp + 0x20]
and edx, dword [esp + 0x24]
or eax, edx
jne 0x1d56333
mov ecx, dword [esp + 0x38]
cmp esi, ecx
jne 0x1d5640b
inc ecx
mov dword [esp + 0x38], ecx
jmp 0x1d5640b
cmp dword [esp + 0x30], 0
jne 0x1d56345
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x1d56345
mov ecx, dword [eax]
jmp 0x1d56347
xor ecx, ecx
mov eax, dword [edi + 0xc]
mov edx, dword [esp + 0x34]
test byte [eax + 0x22], 0x10
lea eax, [esp + 0xa0]
je 0x1d56378
push dword [esp + 0x58]
push eax
push ecx
push dword [esp + 0x54]
mov ecx, dword [esp + 0x24]
push dword [esp + 0x5c]
push edi
call fcn.01d549a0
add esp, 0x18
jmp 0x1d5638f
push eax
push ecx
push dword [esp + 0x50]
mov ecx, dword [esp + 0x20]
push dword [esp + 0x58]
push edi
call fcn.01d54bb0
add esp, 0x14
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0xc4]
and ecx, dword [esp + 0x20]
and eax, dword [esp + 0x24]
or ecx, eax
mov ecx, dword [esp + 0x38]
jne 0x1d56404
cmp esi, ecx
je 0x1d563c2
movsd xmm1, qword [esp + 0x60]
comisd xmm1, xmmword [esp + 0xb0]
jbe 0x1d56404
movaps xmm0, xmmword [esp + 0xa0]
movaps xmmword [esp + 0x70], xmm0
movaps xmm0, xmmword [esp + 0xb0]
movaps xmmword [esp + 0x80], xmm0
movq xmm0, qword [esp + 0xc0]
movq qword [esp + 0x90], xmm0
movsd xmm0, qword [esp + 0x80]
mov dword [esp + 0x40], esi
movsd qword [esp + 0x60], xmm0
cmp byte [esp + 0x1f], 0
jne 0x1d56425
mov edx, dword [esp + 0xc]
inc esi
add dword [esp + 0x58], 0x40
add edi, 0x38
movsx eax, word [edx]
cmp esi, eax
jl 0x1d562f0
jmp 0x1d56429
mov edx, dword [esp + 0xc]
sub dword [esp + 0x50], 1
mov edi, dword [esp + 0x40]
jns 0x1d56282
mov edi, dword [esp + 0x70]
test edi, 0x1000000
je 0x1d5644d
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
mov esi, dword [esp + 0x44]
movq xmm0, qword [esp + 0x70]
and dword [esp + 0x18], edi
mov eax, dword [esp + 0x78]
movq qword [esi], xmm0
mov dword [esi + 8], eax
and edi, 0xf0000
je 0x1d5647d
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x44]
mov dword [esi + 0x14], eax
inc dword [ecx + 0x44]
jmp 0x1d56484
mov dword [esi + 0x14], 0xffffffff
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x54]
lea esi, [eax*8]
sub esi, eax
mov edx, dword [edx + esi*8 + 0x20]
call fcn.01d53360
not edx
not eax
and dword [esp + 0x24], edx
mov edx, dword [esp + 0x44]
and dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
mov byte [edx + 0x28], al
mov edx, dword [esp + 0xc]
mov eax, dword [edx + esi*8 + 0x3c]
test eax, eax
je 0x1d564c5
test edi, edi
je 0x1d564eb
mov ecx, dword [esp + 0x30]
movsx eax, word [edx]
inc ecx
add dword [esp + 0x44], 0x40
mov dword [esp + 0x30], ecx
cmp ecx, eax
jge 0x1d56515
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jmp 0x1d56254
push dword [eax]
push 0x524440
push dword [esp + 0x1c]
call fcn.01d2a480
add esp, 0xc
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov edx, eax
call fcn.01d56020
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x40], 0
jne 0x1d564fe
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + 0x1e], 0
jne 0x1d564fe
mov ecx, dword [esp + 0x18]
and ecx, 0x4000000
je 0x1d5654a
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x1d56546
mov dword [eax], 0
mov eax, dword [esp + 0x14]
test byte [ebp + 0x10], 4
je 0x1d56562
test ecx, ecx
je 0x1d56562
mov ecx, dword [esp + 0x10]
mov byte [ecx + 6], 1
and dword [edi], 0xff7fffff
or edx, 0xffffffff
mov ecx, eax
call fcn.01d46dd0
mov ecx, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0x30], 0
cmp ax, word [ecx]
jge 0x1d56700
jmp 0x1d56594
mov ecx, dword [esp + 0xc]
movzx eax, byte [edi + 0x28]
lea edi, [eax*8]
sub edi, eax
mov esi, dword [ecx + edi*8 + 0x14]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esi + 0x40]
call fcn.01d4ce00
test byte [esi + 0x22], 2
mov edx, eax
mov dword [esp + 0x18], edx
jne 0x1d566dd
cmp dword [esi + 0x1c], 0
jne 0x1d566dd
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
test ecx, 0x8000000
je 0x1d56606
mov ecx, dword [esp + 0x2c]
mov edx, esi
call fcn.01d524a0
mov ecx, dword [esp + 0x3c]
mov edx, 0x7c
push 0xfffffffffffffff6
push eax
mov eax, dword [esp + 0x14]
push 0
push 0
push dword [eax + edi*8 + 0x20]
call fcn.01d36720
add esp, 0x14
jmp 0x1d56684
test ecx, 0x800000
jne 0x1d56684
test byte [ebp + 0x10], 0x10
jne 0x1d56684
mov ecx, dword [esp + 0x10]
xor eax, eax
cmp byte [ecx + 6], al
mov ecx, dword [esp + 0x14]
setne al
add eax, 0x26
push eax
mov eax, dword [esp + 0x10]
push esi
push edx
mov edx, dword [eax + edi*8 + 0x20]
call fcn.01d496f0
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp byte [eax + 6], 0
jne 0x1d56684
cmp dword [esi + 0xc], 0x40
jge 0x1d56684
mov eax, dword [esp + 0xc]
xor esi, esi
mov edx, dword [eax + edi*8 + 0x30]
mov ecx, dword [eax + edi*8 + 0x34]
mov eax, edx
or eax, ecx
je 0x1d5666d
nop
shrd edx, ecx, 1
inc esi
shr ecx, 1
mov eax, edx
or eax, ecx
jne 0x1d56660
mov ecx, dword [esp + 0x3c]
push 0xfffffffffffffff2
push esi
call fcn.01d2d0d0
lea edx, [eax - 1]
call fcn.01d36be0
add esp, 8
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
test dword [ecx], 0xf0000
mov eax, dword [eax + edi*8 + 0x20]
mov dword [ecx + 0x10], eax
je 0x1d566ce
mov esi, dword [ecx + 8]
mov edx, esi
mov ecx, dword [esp + 0x14]
call fcn.01d46ed0
mov edi, dword [esp + 0x18]
mov edx, 0x26
mov ecx, dword [esp + 0x3c]
push 0xfffffffffffffff0
push eax
mov eax, dword [esp + 0x30]
push edi
push dword [esi + 0x14]
push dword [eax + 0x14]
call fcn.01d36720
add esp, 0x14
jmp 0x1d566d2
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.01d46dd0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
inc ecx
add edi, 0x40
mov dword [esp + 0x30], ecx
movsx eax, word [eax]
mov dword [esp + 0x28], edi
cmp ecx, eax
jl 0x1d56590
mov ecx, dword [esp + 0x3c]
call fcn.01d2d0d0
mov ecx, dword [esp + 0x10]
xor edi, edi
or edx, 0xffffffff
xor esi, esi
mov dword [ecx + 0xc], eax
or eax, 0xffffffff
mov ecx, dword [esp + 0xc]
cmp di, word [ecx]
jge 0x1d56763
mov ecx, dword [esp + 0x10]
lea edi, [ecx + 0x40]
jmp 0x1d56734
mov ecx, dword [esp + 0x10]
push edx
push eax
push dword [ebp + 0x10]
mov edx, esi
call fcn.01d554b0
mov ecx, dword [edi]
lea edi, [edi + 0x40]
mov dword [esp + 0x24], eax
inc esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
movsx ecx, word [ecx]
cmp esi, ecx
jl 0x1d56730
mov eax, dword [esp + 0x10]
pop edi
pop esi
mov esp, ebp
pop ebp
ret