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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x110
mov edi, dword [edx + 8]
call 0x10024fb7
pop eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0xc0], eax
cmp edi, dword [ebp + 8]
jle 0x10025be6
mov eax, dword [edx + 0xc]
mov esi, edx
mov ebx, dword [ebp + 0x1c]
mov dword [esp + 0x14], esi
mov ecx, dword [eax + 0x20]
add ecx, dword [edx]
xor edx, edx
cmp byte [eax + 0x29], 8
sete dl
lea edx, [ecx + edx*8]
mov ecx, dword [eax + 0x14]
add ecx, dword [eax + 0x10]
lea eax, [ebx + 1]
mov dword [esp + 0xec], eax
sub edx, ecx
add edx, 4
jmp 0x100250a4
mov edi, esi
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x5c]
lea ecx, [edx + edx*2]
inc edx
mov dword [eax + ecx*8 + 4], esi
mov esi, dword [esp + 0x60]
mov dword [eax + ecx*8], esi
mov esi, dword [esp + 0xc4]
mov dword [eax + ecx*8 + 0xc], esi
mov esi, dword [esp + 0xc8]
mov dword [eax + ecx*8 + 8], esi
mov esi, dword [ebp + 0x1c]
mov dword [eax + ecx*8 + 0x10], esi
mov dword [eax + ecx*8 + 0x14], ebx
mov dword [edi + 8], edx
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x70]
mov edx, esi
push dword [esp + 0xec]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [esp + 0xe4]
call fcn.10024fa0
add esp, 0x18
movzx edx, byte [esp + 0x70]
cmp dl, 0x4b
jne 0x10025cf0
mov eax, dword [esi + 0xc]
xor edx, edx
cmp byte [eax + 0x29], 8
mov ecx, dword [eax + 0x20]
mov edi, dword [eax + 0x14]
sete dl
add ecx, dword [esi]
add edi, dword [eax + 0x10]
lea edx, [ecx + edx*8]
sub edx, edi
mov edi, dword [esi + 8]
add edx, 4
cmp edi, dword [ebp + 8]
jle 0x10025be6
mov dword [esp + 0xbc], edx
lea ecx, [esp + 0x18]
mov edx, esi
call fcn.1002ac10
movzx eax, byte [esp + 0x18]
cmp al, 0x4b
jne 0x10025c12
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xd0], edi
test ebx, ebx
je 0x10025079
movzx eax, word [ebx + 0x60]
cmp eax, 0x1d
je 0x10025100
cmp eax, 0x2e
jne 0x10025670
cmp dword [ebx + 8], 0
je 0x10025685
mov eax, dword [ebx + 0x14]
mov ebx, dword [ebx + 0x10]
jmp 0x10025694
cmp dword [ebx + 8], 0
je 0x1002573f
mov ecx, dword [ebx + 0x14]
mov ebx, dword [ebx + 0x10]
test ecx, ecx
je 0x10025756
shl ecx, 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0x64], 0
jmp 0x100251b3
mov esi, dword [esp + 0x14]
nop dword [eax]
mov ecx, dword [esp + 0xf0]
add ebx, 0x10
add ecx, 0xfffffff0
je 0x100257ce
mov eax, dword [esi + 0xc]
movq xmm0, qword [ebx]
movq xmm1, qword [ebx + 8]
lea edi, [esp + 0x40]
mov dword [esp + 0xf0], ecx
lea ecx, [esp + 0x18]
mov edx, esi
mov eax, dword [eax + 0x28]
movq qword [esp + 0x48], xmm1
movq qword [esp + 0x40], xmm0
push edi
push eax
call fcn.10022540
add esp, 8
mov eax, dword [esp + 0x18]
mov ecx, eax
xor ecx, 0x2e
or ecx, dword [esp + 0x1c]
je 0x10025a35
movzx ecx, word [esp + 0x28]
lea edx, [ecx - 3]
cmp edx, 0x56
ja 0x10025280
mov ecx, dword [edx*4 + 0x10025d28]
add ecx, dword [esp + 0xc0]
jmp ecx
cmp ecx, 0x6e
je 0x10025291
cmp ecx, 0x2007
jne 0x100251a0
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0x40]
lea edx, [esp + 0x18]
mov esi, dword [eax + 0x1c]
call fcn.10023d00
mov edi, dword [ebp + 0xc]
add esi, 8
lea ecx, [esp + 0x90]
mov edx, esi
lea esi, [esp + 0x40]
movzx eax, byte [edi + 0x29]
push esi
push dword [edi + 0x108]
push eax
call fcn.10025ec0
add esp, 0xc
cmp byte [esp + 0x90], 0x4b
jne 0x10025195
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x84], eax
mov dword [esp + 0x10], ecx
jmp 0x10025195
cmp dword [ebx + 8], 0
je 0x1002597c
mov eax, dword [ebx + 0x14]
mov ebx, dword [ebx + 0x10]
jmp 0x1002598b
mov eax, dword [ebx + 0xc]
cmp eax, 6
jae 0x10025d12
add ebx, 0x10
mov edi, esi
mov esi, dword [esi + 0xc]
lea ecx, [esp + 0x18]
mov edx, edi
push eax
push ebx
push dword [esi + 0x28]
call fcn.10024670
add esp, 0xc
movzx eax, byte [esp + 0x18]
cmp al, 0x4b
jne 0x10025c40
mov ebx, dword [esp + 0xd0]
mov esi, edi
cmp dword [edi + 8], ebx
jg 0x10025708
jmp 0x10025079
mov eax, dword [esi + 0x14]
mov esi, dword [esi + 0x10]
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x18]
mov edi, dword [edx + 0xc]
push eax
push esi
push dword [edi + 0x28]
call fcn.10024670
add esp, 0xc
movzx eax, byte [esp + 0x18]
cmp al, 0x4b
jne 0x10025c40
mov esi, dword [esp + 0x14]
cmp dword [esi + 8], ebx
jle 0x10025079
lea ecx, [esp + 0x18]
mov edx, esi
call fcn.1002ac10
movzx eax, byte [esp + 0x18]
cmp al, 0x4b
jne 0x10025bf2
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x100256fb
cmp dword [esi + 8], 0
jne 0x100256d0
mov eax, dword [esi + 0xc]
cmp eax, 6
jae 0x10025d12
add esi, 0x10
jmp 0x100256d6
mov ecx, dword [ebx + 0xc]
cmp ecx, 6
jae 0x10025d14
add ebx, 0x10
test ecx, ecx
jne 0x10025118
mov dword [esp + 0x64], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0x10], 0
mov esi, dword [ebp + 0x14]
mov ebx, dword [esi + 8]
cmp ebx, dword [esi]
mov eax, ebx
jne 0x100257e6
mov ecx, esi
mov edx, ebx
call fcn.1002ae00
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
mov edi, dword [esp + 0x10]
mov ecx, eax
inc eax
shl ecx, 5
cmp dword [esp + 0x64], 1
mov dword [edx + ecx], edi
mov edi, dword [esp + 0x84]
mov dword [edx + ecx + 4], edi
mov edi, dword [esp + 0xb4]
mov dword [edx + ecx + 0xc], edi
mov edi, dword [esp + 0xb8]
mov dword [edx + ecx + 8], edi
mov edi, dword [esp + 0xbc]
mov dword [edx + ecx + 0x10], edi
mov edi, dword [esp + 8]
mov dword [edx + ecx + 0x14], edi
mov edi, dword [esp + 0xc]
mov dword [edx + ecx + 0x18], edi
mov dword [esi + 8], eax
jne 0x100259b7
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xbc], ebx
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x28]
lea esi, [edx + 0x1c]
lea edi, [edx + 0x24]
lea eax, [edx + 0x20]
mov ebx, ecx
shr ecx, 0x10
cmp cx, 5
cmovb edi, esi
lea esi, [edx + 0x18]
cmovb eax, esi
mov edi, dword [edi]
mov esi, dword [eax]
mov eax, dword [esp + 0xcc]
sub edi, eax
jb 0x10025ca4
add esi, eax
cmp cx, 5
mov ecx, dword [edx + 0x30]
mov edx, dword [edx + 0x34]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], ebx
mov ebx, dword [ebp + 0xc]
setae byte [esp + 0x24]
mov byte [esp + 0x27], 0
mov word [esp + 0x25], 0
mov eax, dword [ebx + 0x50]
mov edi, dword [ebx + 0x54]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], ecx
mov ecx, dword [ebx + 0x10c]
mov edi, dword [ebp + 0x1c]
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], ecx
jmp 0x10025907
mov eax, dword [esi + 4]
lea ecx, [edx + edx*2]
inc edx
movdqu xmmword [eax + ecx*8], xmm1
mov dword [eax + ecx*8 + 0x10], edi
mov dword [eax + ecx*8 + 0x14], ebx
mov dword [esi + 8], edx
lea ecx, [esp + 0x40]
lea edx, [esp + 0x18]
call fcn.100211a0
mov eax, dword [esp + 0x40]
movdqu xmm1, xmmword [esp + 0x48]
mov ecx, eax
and cl, 3
cmp cl, 1
jne 0x10025a1a
pshufd xmm2, xmm1, 0xee
movd ecx, xmm1
pshufd xmm0, xmm1, 0x55
pshufd xmm3, xmm1, 0xff
movd esi, xmm2
movd eax, xmm0
movd edx, xmm3
cmp ecx, esi
mov esi, dword [ebp + 0x18]
sbb eax, edx
jae 0x10025907
mov edx, dword [esi + 8]
cmp edx, dword [esi]
jne 0x100258f0
mov ecx, esi
movdqa xmmword [esp + 0xf0], xmm1
call fcn.100210f0
movdqa xmm1, xmmword [esp + 0xf0]
mov edx, dword [esi + 8]
jmp 0x100258f0
mov eax, dword [ebx + 0xc]
cmp eax, 6
jae 0x10025d12
add ebx, 0x10
mov edx, esi
mov esi, dword [esi + 0xc]
lea ecx, [esp + 0x18]
push eax
push ebx
push dword [esi + 0x28]
call fcn.10024670
add esp, 0xc
movzx eax, byte [esp + 0x18]
cmp al, 0x4b
jne 0x10025c86
mov esi, dword [esp + 0x14]
jmp 0x10025079
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
xor eax, 1
or eax, dword [esp + 0xac]
jne 0x10025a53
mov eax, ecx
xor eax, 1
or eax, edx
jne 0x10025a53
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x5c]
cmp dword [esp + 0x60], eax
sbb ecx, dword [esp + 0xc4]
jae 0x1002503f
mov esi, dword [ebp + 0x18]
mov edx, dword [esi + 8]
cmp edx, dword [esi]
jne 0x10025003
mov ecx, esi
call fcn.100210f0
mov edx, dword [esi + 8]
jmp 0x10025003
cmp eax, 2
jne 0x1002503f
movd edx, xmm1
cmp dl, 0x4b
je 0x1002503f
jmp 0x10025cb1
lea eax, [esp + 0x20]
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [esp + 0x78], xmm1
movq qword [esp + 0x70], xmm0
jmp 0x1002506b
mov eax, dword [esp + 0xa8]
xor eax, 1
or eax, dword [esp + 0xa4]
jne 0x1002503f
xor ecx, 1
or ecx, edx
jne 0x1002503f
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
mov edx, eax
mov edi, ecx
add edx, dword [esp + 0xe4]
adc edi, dword [esp + 0xe0]
cmp eax, edx
mov eax, ecx
sbb eax, edi
jae 0x1002503f
mov esi, dword [ebp + 0x18]
mov dword [esp + 0xf0], edx
mov edx, dword [esi + 8]
cmp edx, dword [esi]
jne 0x10025ab6
mov ecx, esi
call fcn.100210f0
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x5c]
lea ecx, [edx + edx*2]
inc edx
mov dword [eax + ecx*8 + 4], esi
mov esi, dword [esp + 0x60]
mov dword [eax + ecx*8], esi
mov dword [eax + ecx*8 + 0xc], edi
mov esi, dword [esp + 0xf0]
mov edi, dword [ebp + 0x1c]
mov dword [eax + ecx*8 + 8], esi
mov dword [eax + ecx*8 + 0x10], edi
mov dword [eax + ecx*8 + 0x14], ebx
mov ecx, dword [ebp + 0x18]
mov dword [ecx + 8], edx
jmp 0x1002503f
mov eax, dword [esp + 0x68]
mov byte [eax], 0x4b
jmp 0x10025c7e
movzx edi, word [esp + 0x19]
mov ah, byte [esp + 0x1b]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov word [esp + 0x40], di
mov byte [esp + 0x42], ah
jmp 0x10025c5f
movzx ecx, word [esp + 0x19]
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x24]
mov word [edx + 1], cx
movzx ecx, byte [esp + 0x1b]
mov byte [edx + 3], cl
mov ecx, dword [esp + 0x1c]
mov byte [edx], al
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x20]
mov dword [edx + 0xc], esi
mov dword [edx + 8], ecx
jmp 0x10025c7e
movzx ecx, byte [esp + 0x1b]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov byte [esp + 0x42], cl
movzx ecx, word [esp + 0x19]
mov word [esp + 0x40], cx
mov ecx, dword [esp + 0x1c]
movzx edi, word [esp + 0x40]
mov ebx, dword [esp + 0x68]
mov ah, byte [esp + 0x42]
mov word [ebx + 1], di
mov byte [ebx + 3], ah
mov byte [ebx], al
mov dword [ebx + 4], ecx
mov dword [ebx + 0xc], edx
mov dword [ebx + 8], esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movsd xmm0, qword [esp + 0x19]
movsd xmm1, qword [esp + 0x20]
mov ecx, dword [esp + 0x68]
movsd qword [ecx + 8], xmm1
movsd qword [ecx + 1], xmm0
mov byte [ecx], al
jmp 0x10025c7e
mov eax, ebx
xor ebx, ebx
mov dl, 0x13
xor edi, edi
shl eax, 0x10
jmp 0x10025cd7
pshufd xmm0, xmm1, 0x55
pshufd xmm2, xmm1, 0xff
pshufd xmm1, xmm1, 0xee
mov eax, edx
mov bl, dh
movd ecx, xmm0
movd edi, xmm2
movd esi, xmm1
shrd eax, ecx, 0x10
shr ecx, 0x10
mov byte [esp + 0x70], dl
mov byte [esp + 0x71], bl
mov dword [esp + 0x72], eax
mov word [esp + 0x76], cx
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], edi
lea eax, [esp + 0x71]
mov ecx, dword [esp + 0x68]
movsd xmm1, qword [eax + 7]
movsd xmm0, qword [eax]
movsd qword [ecx + 8], xmm1
movsd qword [ecx + 1], xmm0
mov byte [ecx], dl
jmp 0x10025c7e
mov ecx, eax
mov edx, 5
push 0x10365e34
call fcn.10003a80
add esp, 4
ud2