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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xb8
mov eax, dword [0x10042040]
xor eax, esp
mov dword [esp + 0xb4], eax
push esi
mov esi, dword [0x100420ec]
push edi
mov dword [esp + 0x14], edx
mov edx, ecx
mov dword [esp + 0x20], edx
mov eax, dword [esi + 0x186c]
mov dword [esp + 0x1c], esi
mov byte [eax + 0x8e], 1
mov edi, dword [esi + 0x186c]
mov dword [esp + 0x18], edi
cmp byte [edi + 0x90], 0
je 0x100231d6
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0xb4]
xor ecx, esp
call fcn.10037580
mov esp, ebp
pop ebp
ret
movss xmm1, dword [esi + 0x141c]
xorps xmm0, xmm0
mov ecx, dword [ebp + 8]
addss xmm1, xmm1
addss xmm1, dword [esi + 0x179c]
movss dword [esp + 0x3c], xmm1
test cl, 0x10
je 0x10023200
xorps xmm3, xmm3
jmp 0x1002320b
movaps xmm3, xmm1
addss xmm3, dword [esi + 0x1430]
movss xmm2, dword [edi + 0x144]
comiss xmm0, xmm2
movss xmm5, dword [0x1003f228]
jbe 0x10023286
movss xmm4, dword [edi + 0xd8]
mov esi, dword [edi + 0x1a0]
movss xmm1, dword [edi + 0x4c]
subss xmm4, dword [edi + 0x14]
test esi, esi
je 0x10023273
mov edx, dword [esi + 0xc]
movss xmm1, dword [esi + 0x18]
subss xmm1, dword [esi + 0x14]
lea eax, [edx + 1]
test eax, eax
cmovns edx, eax
mov eax, dword [esi + 0x34]
lea ecx, [edx*8]
sub ecx, edx
mov edx, dword [esp + 0x20]
mulss xmm1, dword [eax + ecx*4]
mov ecx, dword [ebp + 8]
addss xmm1, dword [esi + 0x14]
subss xmm1, dword [edi + 0x54]
mov esi, dword [esp + 0x1c]
subss xmm1, xmm4
addss xmm1, xmm2
movaps xmm2, xmm5
maxss xmm2, xmm1
mov dword [esp + 0x38], edx
mov edi, edx
cvttss2si eax, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm0, xmm3
movss dword [esp + 0x30], xmm0
cmp edx, 0xffffffff
jae 0x100232c0
mov dl, byte [edi]
test dl, dl
je 0x100232bc
cmp dl, 0x23
jne 0x100232b6
cmp byte [edi + 1], dl
je 0x100232bc
inc edi
cmp edi, 0xffffffff
jb 0x100232a6
mov dword [esp + 0x38], edi
mov eax, ecx
mov dword [esp + 0x2c], ecx
shr eax, 1
not al
and eax, 0xffffff01
mov dword [esp + 0x24], eax
movzx eax, al
add eax, 3
mov dword [esp + 0x28], eax
call fcn.100269d0
mov eax, dword [0x100420ec]
xor edx, edx
mov eax, dword [eax + 0x186c]
add eax, 0x1a4
mov dword [esp + 0x58], eax
mov ecx, dword [eax]
mov eax, dword [eax + 8]
push dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x24]
call fcn.1000c820
mov ecx, eax
add esp, 4
mov eax, dword [0x100420ec]
cmp dword [eax + 0x188c], ecx
jne 0x10023323
mov byte [eax + 0x1898], 1
lea eax, [esp + 0x10]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
push eax
call fcn.10027d00
mov ecx, dword [ebp + 8]
test cl, 0x20
je 0x1002334c
and ecx, 0xffff3fff
or ecx, 0x2008
mov dword [ebp + 8], ecx
test cl, 8
jne 0x1002335f
mov edx, ecx
mov ecx, dword [esp + 0x14]
call fcn.10022a70
mov ecx, dword [ebp + 8]
test ecx, 0xe000
jne 0x10023374
mov eax, dword [esi + 0x28f8]
and eax, 0xe000
or ecx, eax
test ecx, 0x30000
jne 0x10023389
mov eax, dword [esi + 0x28f8]
and eax, 0x30000
or ecx, eax
test ecx, 0xc0000
jne 0x1002339e
mov eax, dword [esi + 0x28f8]
and eax, 0xc0000
or ecx, eax
mov eax, dword [esi + 0x28f8]
and eax, 0xfff01fff
or ecx, eax
cmp byte [esp + 0x24], 0
mov eax, dword [esp + 0x14]
mov dword [ebp + 8], ecx
movss xmm2, dword [eax]
movss xmm3, dword [eax + 4]
movss xmm4, dword [eax + 8]
je 0x100233ce
movss xmm5, dword [eax + 0xc]
jmp 0x100233d6
movss xmm5, dword [0x1003f228]
test ecx, 0x4000
je 0x1002345d
comiss xmm4, xmm3
xorps xmm6, xmm6
movaps xmm1, xmm3
movaps xmm7, xmm4
jbe 0x100233fa
movss xmm6, dword [0x1003f300]
movaps xmm1, xmm4
movaps xmm7, xmm3
comiss xmm1, xmm2
movaps xmm4, xmm2
jbe 0x10023417
movss xmm0, dword [0x1003f2ec]
movaps xmm4, xmm1
subss xmm0, xmm6
movaps xmm1, xmm2
movaps xmm6, xmm0
movaps xmm0, xmm1
movaps xmm3, xmm4
minss xmm0, xmm7
movaps xmm2, xmm1
subss xmm2, xmm7
subss xmm3, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x1003f294]
addss xmm0, dword [0x1003f1b0]
divss xmm2, xmm0
movaps xmm0, xmm4
addss xmm0, dword [0x1003f1b0]
addss xmm2, xmm6
divss xmm3, xmm0
andps xmm2, xmmword [0x1003f450]
comiss xmm2, dword [0x1003f1ac]
movss xmm1, dword [0x1003f2f0]
movss xmm0, dword [0x1003f1f8]
jb 0x1002347b
movaps xmm7, xmm0
jmp 0x1002347e
movaps xmm7, xmm1
movss xmm6, dword [0x1003f2d8]
mulss xmm2, xmm6
addss xmm2, xmm7
xorps xmm7, xmm7
comiss xmm3, xmm7
cvttss2si esi, xmm2
mov dword [esp + 0x68], esi
jb 0x100234a3
movaps xmm2, xmm0
jmp 0x100234a6
movaps xmm2, xmm1
comiss xmm4, xmm7
mulss xmm3, xmm6
addss xmm3, xmm2
cvttss2si edx, xmm3
mov dword [esp + 0x6c], edx
jb 0x100234c0
movaps xmm2, xmm0
jmp 0x100234c3
movaps xmm2, xmm1
comiss xmm5, xmm7
mulss xmm4, xmm6
addss xmm4, xmm2
cvttss2si eax, xmm4
mov dword [esp + 0x58], eax
mov dword [esp + 0x70], eax
jae 0x100234df
movaps xmm0, xmm1
mulss xmm5, xmm6
mov byte [esp + 0xf], 0
addss xmm5, xmm0
cvttss2si ecx, xmm5
mov dword [esp + 0x10], ecx
mov dword [esp + 0x74], ecx
mov ecx, dword [ebp + 8]
test ecx, 0x6000
je 0x10023721
test cl, 0x20
jne 0x10023721
mov ecx, dword [esp + 0x28]
movss xmm5, dword [esp + 0x30]
movaps xmm1, xmm5
lea eax, [ecx - 1]
movd xmm3, eax
mov eax, dword [esp + 0x1c]
cvtdq2ps xmm3, xmm3
movss xmm2, dword [eax + 0x1430]
movaps xmm0, xmm2
mulss xmm0, xmm3
subss xmm1, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mov ecx, dword [0x100420ec]
divss xmm1, xmm0
cvttss2si eax, xmm1
movss xmm1, dword [0x1003f228]
movaps xmm4, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
maxss xmm4, xmm0
addss xmm2, xmm4
ucomiss xmm4, xmm7
mulss xmm2, xmm3
subss xmm5, xmm2
cvttss2si eax, xmm5
movd xmm0, eax
mov eax, dword [ecx + 0x186c]
cvtdq2ps xmm0, xmm0
mov byte [eax + 0x8e], 1
mov ecx, dword [ecx + 0x186c]
lahf
maxss xmm1, xmm0
movss dword [esp + 0x58], xmm1
test ah, 0x44
jp 0x100235ae
movss xmm4, dword [ecx + 0x1e4]
lea eax, [ecx + 0x144]
add ecx, 0x158
movss dword [eax], xmm4
push eax
call fcn.10027d00
xor esi, esi
cmp dword [esp + 0x28], esi
jbe 0x100236c1
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x1c]
and eax, 8
mov dword [esp + 0x30], eax
nop
xorps xmm2, xmm2
test esi, esi
je 0x10023656
mov edx, dword [0x100420ec]
movss xmm1, dword [edi + 0x1430]
mov eax, dword [edx + 0x186c]
mov byte [eax + 0x8e], 1
mov ecx, dword [edx + 0x186c]
cmp byte [ecx + 0x90], 0
jne 0x10023656
comiss xmm2, xmm1
jbe 0x1002361e
movss xmm1, dword [edx + 0x1428]
addss xmm1, dword [ecx + 0xe0]
movss xmm0, dword [ecx + 0xe4]
movss dword [ecx + 0xd8], xmm1
movss dword [ecx + 0xdc], xmm0
mov eax, dword [ecx + 0x100]
mov dword [ecx + 0xf8], eax
mov eax, dword [ecx + 0x104]
mov dword [ecx + 0xfc], eax
lea eax, [esi + 1]
mov esi, eax
cmp eax, dword [esp + 0x28]
jne 0x100236a7
movss xmm0, dword [esp + 0x58]
mov ecx, dword [0x100420ec]
ucomiss xmm0, xmm2
mov eax, dword [ecx + 0x186c]
mov byte [eax + 0x8e], 1
mov ecx, dword [ecx + 0x186c]
lahf
test ah, 0x44
jp 0x10023691
movss xmm0, dword [ecx + 0x1e4]
lea eax, [ecx + 0x144]
add ecx, 0x158
movss dword [eax], xmm0
push eax
call fcn.10027d00
cmp dword [esp + 0x30], 0
jne 0x100236b3
call fcn.10011ec0
cmp esi, dword [esp + 0x28]
jl 0x100235e0
mov edi, dword [esp + 0x38]
mov edx, dword [0x100420ec]
mov eax, dword [edx + 0x186c]
mov byte [eax + 0x8e], 1
mov ecx, dword [edx + 0x186c]
mov esi, dword [ecx + 0x158]
sub esi, 1
mov dword [ecx + 0x158], esi
jne 0x100236f5
movss xmm0, dword [ecx + 0x1e4]
jmp 0x10023701
mov eax, dword [ecx + 0x160]
movss xmm0, dword [eax + esi*4 - 4]
movss dword [ecx + 0x144], xmm0
mov eax, dword [edx + 0x186c]
mov byte [eax + 0x8e], 1
mov ecx, dword [edx + 0x186c]
jmp 0x1002391d
test ecx, 0x8000
je 0x10023952
test cl, 0x20
jne 0x10023952
cmp byte [esp + 0x24], 0
mov ecx, 0xff
je 0x100237ae
mov eax, dword [esp + 0x10]
test eax, eax
jns 0x10023754
mov dword [esp + 0x10], 0
jmp 0x10023760
cmp eax, 0xff
cmovg eax, ecx
mov dword [esp + 0x10], eax
test esi, esi
jns 0x10023768
xor esi, esi
jmp 0x1002376d
cmp esi, ecx
cmovg esi, ecx
test edx, edx
jns 0x10023775
xor edx, edx
jmp 0x1002377a
cmp edx, ecx
cmovg edx, ecx
mov eax, dword [esp + 0x58]
test eax, eax
jns 0x10023786
xor eax, eax
jmp 0x1002378e
cmp eax, 0xff
cmovg eax, ecx
push dword [esp + 0x10]
push eax
push edx
push esi
push 0x1003f000
lea eax, [esp + 0x8c]
push 0x40
push eax
call fcn.1000c7c0
add esp, 0x1c
jmp 0x100237f2
test edx, edx
jns 0x100237b6
xor edx, edx
jmp 0x100237bb
cmp edx, ecx
cmovg edx, ecx
test esi, esi
jns 0x100237c3
xor esi, esi
jmp 0x100237c8
cmp esi, ecx
cmovg esi, ecx
test eax, eax
jns 0x100237d0
xor eax, eax
jmp 0x100237d8
cmp eax, 0xff
cmovg eax, ecx
push eax
push edx
push esi
push 0x1003f014
lea eax, [esp + 0x88]
push 0x40
push eax
call fcn.1000c7c0
add esp, 0x18
movss xmm5, dword [esp + 0x30]
ucomiss xmm5, dword [0x1003f1ac]
mov ecx, dword [0x100420ec]
mov eax, dword [ecx + 0x186c]
mov byte [eax + 0x8e], 1
mov ecx, dword [ecx + 0x186c]
lahf
test ah, 0x44
jp 0x10023826
movss xmm5, dword [ecx + 0x1e4]
lea eax, [ecx + 0x144]
add ecx, 0x158
movss dword [eax], xmm5
push eax
call fcn.10027d00
push 0
push 0
push 6
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 0
push eax
push 0x40
lea edx, [esp + 0x8c]
mov dword [esp + 0x48], 0
mov ecx, str.Text
call fcn.1001d780
add esp, 0x14
test al, al
je 0x100238f9
mov byte [esp + 0xf], 1
lea ecx, [esp + 0x78]
nop
mov al, byte [ecx]
cmp al, 0x23
je 0x1002388e
cmp al, 0x20
je 0x1002388e
cmp al, 9
jne 0x10023891
inc ecx
jmp 0x10023880
cmp byte [esp + 0x24], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
je 0x100238dc
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x74]
push eax
push str._02X_02X_02X_02X
push ecx
call fcn.1000b490
add esp, 0x18
jmp 0x100238f9
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x70]
push eax
push str._02X_02X_02X
push ecx
call fcn.1000b490
add esp, 0x14
test byte [ebp + 8], 8
jne 0x10023904
call fcn.10011ec0
mov ecx, dword [0x100420ec]
mov eax, dword [ecx + 0x186c]
mov byte [eax + 0x8e], 1
mov ecx, dword [ecx + 0x186c]
mov edx, dword [ecx + 0x158]
sub edx, 1
mov dword [ecx + 0x158], edx
jne 0x10023938
movss xmm0, dword [ecx + 0x1e4]
jmp 0x10023944
mov eax, dword [ecx + 0x160]
movss xmm0, dword [eax + edx*4 - 4]
movss dword [ecx + 0x144], xmm0
xorps xmm7, xmm7
mov ecx, dword [ebp + 8]
mov dword [esp + 0x10], 0
test cl, 0x10
jne 0x10023c20
mov esi, dword [esp + 0x1c]
test cl, 0x20
jne 0x100239df
mov eax, dword [0x100420ec]
movss xmm1, dword [esi + 0x1430]
mov eax, dword [eax + 0x186c]
mov byte [eax + 0x8e], 1
mov eax, dword [0x100420ec]
mov edx, dword [eax + 0x186c]
cmp byte [edx + 0x90], 0
jne 0x100239df
comiss xmm7, xmm1
jbe 0x100239a7
movss xmm1, dword [eax + 0x1428]
addss xmm1, dword [edx + 0xe0]
movss xmm0, dword [edx + 0xe4]
movss dword [edx + 0xd8], xmm1
movss dword [edx + 0xdc], xmm0
mov eax, dword [edx + 0x100]
mov dword [edx + 0xf8], eax
mov eax, dword [edx + 0x104]
mov dword [edx + 0xfc], eax
cmp byte [esp + 0x24], 0
mov eax, dword [esp + 0x14]
je 0x100239f1
movss xmm1, dword [eax + 0xc]
jmp 0x100239f9
movss xmm1, dword [0x1003f228]
movss xmm0, dword [eax]
lea edx, [esp + 0x40]
mov dword [esp + 0x5c], 0
push dword [esp + 0x5c]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [eax + 4]
mov dword [esp + 0x5c], 0
push dword [esp + 0x5c]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [eax + 8]
push ecx
mov ecx, str.ColorButton
movss dword [esp + 0x54], xmm0
movss dword [esp + 0x58], xmm1
call fcn.10022240
add esp, 0xc
test al, al
mov eax, dword [ebp + 8]
je 0x10023b09
test al, 4
jne 0x10023b09
movups xmm0, xmmword [esp + 0x40]
mov eax, dword [0x100420ec]
xor edx, edx
movups xmmword [esi + 0x28fc], xmm0
mov eax, dword [eax + 0x186c]
mov ecx, dword [eax + 0x1a4]
mov eax, dword [eax + 0x1ac]
push dword [eax + ecx*4 - 4]
mov ecx, 0x1003f060
call fcn.1000c820
mov ecx, eax
add esp, 4
mov eax, dword [0x100420ec]
cmp dword [eax + 0x188c], ecx
jne 0x10023aa8
mov byte [eax + 0x1898], 1
xor dl, dl
call fcn.10011b30
mov eax, dword [esp + 0x18]
movss xmm1, dword [eax + 0x114]
movss xmm0, dword [eax + 0x120]
addss xmm0, dword [esi + 0x142c]
mov eax, dword [0x100420ec]
subss xmm1, dword [0x1003f228]
movss dword [eax + 0x1908], xmm0
mov dword [eax + 0x190c], 0
movss dword [eax + 0x1904], xmm1
mov dword [eax + 0x1910], 0
mov dword [eax + 0x18ec], 1
mov eax, dword [ebp + 8]
test al, 8
jne 0x10023b12
call fcn.10011ec0
mov ecx, 0x1003f060
call fcn.10011e20
test al, al
je 0x10023c1d
mov eax, dword [esi + 0x186c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x10023b44
mov edx, edi
mov ecx, eax
call fcn.10017d30
call fcn.10026670
movss xmm0, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
mulss xmm0, dword [0x1003f2b0]
and eax, 0xf1202
mov ecx, dword [0x100420ec]
or eax, 0xe880
mov dword [esp + 0x2c], eax
ucomiss xmm0, dword [0x1003f1ac]
mov eax, dword [ecx + 0x186c]
mov byte [eax + 0x8e], 1
mov ecx, dword [ecx + 0x186c]
lahf
test ah, 0x44
jp 0x10023b92
movss xmm0, dword [ecx + 0x1e4]
lea eax, [ecx + 0x144]
add ecx, 0x158
movss dword [eax], xmm0
push eax
call fcn.10027d00
mov ecx, dword [esp + 0x2c]
lea eax, [esi + 0x28fc]
mov esi, dword [esp + 0x14]
mov edx, esi
push eax
push ecx
mov ecx, str.picker
call fcn.10024020
mov ecx, dword [0x100420ec]
add esp, 8
or byte [esp + 0xf], al
mov eax, dword [ecx + 0x186c]
mov byte [eax + 0x8e], 1
mov ecx, dword [ecx + 0x186c]
mov edx, dword [ecx + 0x158]
sub edx, 1
mov dword [ecx + 0x158], edx
jne 0x10023bff
movss xmm0, dword [ecx + 0x1e4]
jmp 0x10023c0b
mov eax, dword [ecx + 0x160]
movss xmm0, dword [eax + edx*4 - 4]
movss dword [ecx + 0x144], xmm0
call fcn.10016db0
mov ecx, dword [ebp + 8]
jmp 0x10023c24
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x20], edi
je 0x10023cb7
test cl, cl
js 0x10023cb7
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x100420ec]
movss xmm1, dword [eax + 0x1430]
mov eax, dword [ecx + 0x186c]
mov byte [eax + 0x8e], 1
mov edx, dword [ecx + 0x186c]
cmp byte [edx + 0x90], 0
jne 0x10023cac
xorps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x10023c74
movss xmm1, dword [ecx + 0x1428]
addss xmm1, dword [edx + 0xe0]
movss xmm0, dword [edx + 0xe4]
movss dword [edx + 0xd8], xmm1
movss dword [edx + 0xdc], xmm0
mov eax, dword [edx + 0x100]
mov dword [edx + 0xf8], eax
mov eax, dword [edx + 0x104]
mov dword [edx + 0xfc], eax
mov ecx, dword [esp + 0x20]
mov edx, edi
call fcn.10017d30
cmp dword [esp + 0x10], 0
jne 0x10023d3b
test dword [ebp + 8], 0x4000
movups xmm0, xmmword [esp + 0x68]
cvtdq2ps xmm0, xmm0
divps xmm0, xmmword [0x1003f430]
movups xmmword [esp + 0x58], xmm0
je 0x10023d02
movss xmm2, dword [esp + 0x60]
lea eax, [esp + 0x60]
movss xmm1, dword [esp + 0x5c]
lea edx, [esp + 0x5c]
movss xmm0, dword [esp + 0x58]
lea ecx, [esp + 0x58]
push eax
call fcn.1000cf50
add esp, 4
cmp byte [esp + 0xf], 0
je 0x10023d3b
cmp byte [esp + 0x24], 0
movss xmm0, dword [esp + 0x58]
movss dword [esi], xmm0
movss xmm0, dword [esp + 0x5c]
movss dword [esi + 4], xmm0
movss xmm0, dword [esp + 0x60]
movss dword [esi + 8], xmm0
je 0x10023d3b
movss xmm0, dword [esp + 0x64]
movss dword [esi + 0xc], xmm0
mov eax, dword [0x100420ec]
mov eax, dword [eax + 0x186c]
dec dword [eax + 0x1a4]
call fcn.10026ae0
mov esi, dword [esp + 0x18]
cmp byte [esi + 0x124], 0
je 0x10023e2d
mov esi, dword [0x100420ec]
cmp byte [esi + 0x1b68], 0
je 0x10023e29
mov edi, dword [esi + 0x186c]
cmp byte [edi + 0x124], 0
je 0x10023e29
mov ecx, dword [esi + 0x1874]
test ecx, ecx
je 0x10023e29
mov eax, dword [edi + 0x23c]
cmp eax, dword [ecx + 0x23c]
jne 0x10023e29
mov eax, dword [edi + 0x110]
test eax, eax
jne 0x10023dc0
lea eax, [edi + 0x114]
mov ecx, edi
push eax
call fcn.1000dc60
cmp dword [esi + 0x1b7c], eax
je 0x10023e29
movups xmm0, xmmword [edi + 0x114]
mov ecx, str._COL3F
mov dword [esi + 0x1ba4], eax
movups xmmword [esi + 0x1b94], xmm0
call fcn.10027690
mov esi, dword [esp + 0x14]
test eax, eax
je 0x10023e03
mov eax, dword [eax]
mov byte [esp + 0xf], 1
movq xmm0, qword [eax]
movq qword [esi], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
mov ecx, str._COL4F
call fcn.10027690
test eax, eax
je 0x10023e29
mov ecx, dword [esp + 0x28]
shl ecx, 2
push ecx
push dword [eax]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esp + 0xf], 1
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
test edx, edx
je 0x10023e51
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x188c]
test ecx, ecx
je 0x10023e51
cmp dword [eax + 0x18a4], edx
jne 0x10023e51
mov dword [esi + 0x110], ecx
mov ecx, dword [esp + 0xbc]
mov al, byte [esp + 0xf]
pop edi
pop esi
xor ecx, esp
call fcn.10037580
mov esp, ebp
pop ebp
ret